From 32812ff119ad9807eae0f124c55dda14cf0960fc Mon Sep 17 00:00:00 2001 From: Djery-Tom Date: Mon, 31 Aug 2020 17:09:06 +0100 Subject: [PATCH] + Set default player for user and agent --- .../Controllers/NotificationController.php | 4 +- app/Http/Controllers/OneSignalController.php | 55 ++++++++++++++++--- app/Http/Middleware/Localization.php | 37 +++++++++++++ bootstrap/app.php | 3 +- resources/lang/en/errors.php | 1 + resources/lang/en/messages.php | 2 +- resources/lang/fr/errors.php | 1 + resources/lang/fr/messages.php | 3 +- 8 files changed, 92 insertions(+), 14 deletions(-) create mode 100755 app/Http/Middleware/Localization.php diff --git a/app/Http/Controllers/NotificationController.php b/app/Http/Controllers/NotificationController.php index c595ca1..875eacd 100644 --- a/app/Http/Controllers/NotificationController.php +++ b/app/Http/Controllers/NotificationController.php @@ -32,9 +32,9 @@ class NotificationController extends Controller ]); $notifications = []; if (isset($request->user_code)) - $notifications = Notification::where('user_code', $request->user_code)->get(); + $notifications = Notification::where('user_code', $request->user_code)->orderBy('date' , 'DESC')->get(); elseif (isset($request->agent_code)) - $notifications = Notification::where('agent_code', $request->agent_code)->get(); + $notifications = Notification::where('agent_code', $request->agent_code)->orderBy('date' , 'DESC')->get(); foreach ($notifications as $notif) { $notif->data = json_decode($notif->data); diff --git a/app/Http/Controllers/OneSignalController.php b/app/Http/Controllers/OneSignalController.php index f788ea3..d925c1f 100644 --- a/app/Http/Controllers/OneSignalController.php +++ b/app/Http/Controllers/OneSignalController.php @@ -26,31 +26,68 @@ class OneSignalController extends Controller public function addUserPlayerID(Request $request){ $this->validate($request , [ 'user_code'=> 'required', - 'player_id'=> 'required' + 'player_id'=> 'required', + 'set_default' => 'required|boolean' ]); - - $saveUser = OnesignalUser::where('user_code',$request->user_code)->where('player_id',$request->player_id)->first(); - if(!$saveUser){ + $records = OnesignalUser::where('user_code',$request->user_code)->get(); + if($request->set_default){ + foreach ($records as $r){ + $r->delete(); + } $user = new OnesignalUser(); $user->fill($request->all()); $user->save(); + }else{ + + $saveUser = OnesignalUser::where('user_code',$request->user_code)->where('player_id',$request->player_id)->first(); + if(!$saveUser){ + if(sizeof($records)>0) + return $this->errorResponse(trans('errors.phone_already_associated')); + + $request->set_default = true; + return $this->addUserPlayerID($request); + }else{ + if(sizeof($records)>1) + return $this->errorResponse(trans('errors.phone_already_associated')); + } } - return $this->successResponse('Player ID saved'); + + return $this->successResponse(trans('messages.player_id_saved')); } public function addAgentPlayerID(Request $request){ $this->validate($request , [ 'code_membre'=> 'required', - 'player_id'=> 'required' + 'player_id'=> 'required', + 'set_default' => 'required|boolean' ]); - $saveUser = OnesignalAgent::where('code_membre',$request->code_membre)->where('player_id',$request->player_id)->first(); - if(!$saveUser){ + $records = OnesignalAgent::where('code_membre',$request->code_membre)->get(); + + if($request->set_default){ + foreach ($records as $r){ + $r->delete(); + } $user = new OnesignalAgent(); $user->fill($request->all()); $user->save(); + }else{ + + $saveUser = OnesignalAgent::where('code_membre',$request->code_membre)->where('player_id',$request->player_id)->first(); + + if(!$saveUser){ + if(sizeof($records)>0) + return $this->errorResponse(trans('errors.phone_already_associated')); + + $request->set_default = true; + return $this->addAgentPlayerID($request); + }else{ + if(sizeof($records)>1) + return $this->errorResponse(trans('errors.phone_already_associated')); + } } - return $this->successResponse('Player ID saved'); + + return $this->successResponse(trans('messages.player_id_saved')); } public function pushMessageToOneUser(Request $request){ diff --git a/app/Http/Middleware/Localization.php b/app/Http/Middleware/Localization.php new file mode 100755 index 0000000..24f09a8 --- /dev/null +++ b/app/Http/Middleware/Localization.php @@ -0,0 +1,37 @@ +hasHeader('X-localization')){ + $local = $request->header('X-localization'); + $pos=strpos($local,"-"); + if($pos!=false){ + $local=strtolower(explode("-",$local)[0]); + } + $local= in_array($local, $enLangs) ? 'en' : 'fr'; + }else{ + $local ='fr'; + } + // set laravel localization + app()->setLocale($local); + // continue request + return $next($request); + } +} diff --git a/bootstrap/app.php b/bootstrap/app.php index c0647f3..89d3976 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -86,7 +86,8 @@ $app->alias('mailer', Illuminate\Contracts\Mail\MailQueue::class); $app->middleware([ // App\Http\Middleware\ExampleMiddleware::class - App\Http\Middleware\AuthenticateAccess::class + App\Http\Middleware\Localization::class, + App\Http\Middleware\AuthenticateAccess::class ]); // $app->routeMiddleware([ diff --git a/resources/lang/en/errors.php b/resources/lang/en/errors.php index f2c4420..c29b3c4 100755 --- a/resources/lang/en/errors.php +++ b/resources/lang/en/errors.php @@ -3,4 +3,5 @@ return [ 'model_not_found' => 'Does not exist any instance of :model with given id', 'unexpected_error'=> 'Unexpected error. Try later', 'service_unavailable' => 'Service unavailable', + "phone_already_associated" => "You already have a phone associated . Do you want to change it ?", ]; diff --git a/resources/lang/en/messages.php b/resources/lang/en/messages.php index bee73cf..22c1274 100755 --- a/resources/lang/en/messages.php +++ b/resources/lang/en/messages.php @@ -1,4 +1,4 @@ "Player ID saved", ]; diff --git a/resources/lang/fr/errors.php b/resources/lang/fr/errors.php index 1c1d52c..b46655b 100755 --- a/resources/lang/fr/errors.php +++ b/resources/lang/fr/errors.php @@ -3,4 +3,5 @@ return [ 'model_not_found' => 'Il n\'existe aucune instance de :model avec l\'id donné', 'unexpected_error'=> 'Erreur inattendue. Essayer plus tard', 'service_unavailable' => 'Service non disponible', + "phone_already_associated" => "Vous avez déjà un téléphone associé. Voulez-vous le changer ?" ]; diff --git a/resources/lang/fr/messages.php b/resources/lang/fr/messages.php index bee73cf..aa56c13 100755 --- a/resources/lang/fr/messages.php +++ b/resources/lang/fr/messages.php @@ -1,4 +1,5 @@ "Player ID enregistré", + "" ];