validate($request , [ 'user_code'=> 'required', 'player_id'=> 'required', 'set_default' => 'required|boolean' ]); $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'), Response::HTTP_CREATED); $request->set_default = true; return $this->addUserPlayerID($request); }else{ if(sizeof($records)>1) return $this->errorResponse(trans('errors.phone_already_associated'), Response::HTTP_CREATED); } } return $this->successResponse(trans('messages.player_id_saved')); } public function addAgentPlayerID(Request $request){ $this->validate($request , [ 'code_membre'=> 'required', 'player_id'=> 'required', 'set_default' => 'required|boolean' ]); $codes = []; // Recuperer tous les codes agents de l'agent $client = new \GuzzleHttp\Client([ 'base_uri' => env('WALLET_SERVICE_BASE_URL'), ]); $headers = [ 'Authorization' => env('WALLET_SERVICE_KEY'), ]; try { $result = $client->request('GET', '/agent_codes/'.$request->code_membre, ['headers' => $headers]); $response = json_decode($result->getBody()->getContents()); if($response) $codes = $response->response; } catch (GuzzleException $e) { Log::error($e->getMessage()); } if($request->set_default){ foreach ($codes as $code){ $records = OnesignalAgent::where('code_membre',$code->code_membre)->get(); foreach ($records as $r){ $r->delete(); } $user = new OnesignalAgent(); $user->code_membre = $code->code_membre; $user->player_id = $request->player_id; $user->save(); } }else{ $records = OnesignalAgent::where('code_membre',$request->code_membre)->get(); $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'), Response::HTTP_CREATED); $request->set_default = true; return $this->addAgentPlayerID($request); }else{ if(sizeof($records)>1) return $this->errorResponse(trans('errors.phone_already_associated'), Response::HTTP_CREATED); } } return $this->successResponse(trans('messages.player_id_saved')); } public function pushMessageToOneUser(Request $request){ $this->validate($request , [ 'user_code'=> 'required', 'message'=> 'required', 'data'=>'required', 'date' => 'required|date|date_format:Y-m-d H:i:s' ]); $userIds = OnesignalUser::where('user_code',$request->user_code)->get(); $notif = new Notification(); $notif->user_code = $request->user_code; $notif->message = $request->message; $notif->data = json_encode($request->data); $notif->date = $request->date; $notif->read = false; $notif->save(); if($userIds){ foreach ($userIds as $userId){ OneSignalFacade::async()->sendNotificationToUser($request->message, $userId->player_id, $url = null, $request->data); // OneSignal::sendNotificationToUser($request->message, $userId->player_id, $url = null, $request->data); } } return $this->successResponse('Notification delivered'); } public function pushMessageToOneAgent(Request $request){ $this->validate($request , [ 'agent_code'=> 'required', 'message'=> 'required', 'data'=>'required', 'date' => 'required|date|date_format:Y-m-d H:i:s' ]); $userIds = OnesignalAgent::where('code_membre',$request->agent_code)->get(); $notif = new Notification(); $notif->agent_code = $request->agent_code; $notif->message = $request->message; $notif->data = json_encode($request->data); $notif->date = $request->date; $notif->read = false; $notif->save(); if($userIds){ foreach ($userIds as $userId){ OneSignalFacade::async()->sendNotificationToUser($request->message, $userId->player_id, $url = null, $request->data); } } return $this->successResponse('Notification delivered'); } }