//push notificaion public function push($req){ $get = ResourceNotification::where('user_id', $req->receiver_id)->with('userId')->get(); $tokens = []; foreach ($get as $g) { // code... array_push($tokens, $g->resource); } $limitToken = array_chunk($tokens, 500); // dd($limitToken); if (sizeof($tokens) > 0){ foreach ($limitToken as $t) { // code... $optionBuilder = new OptionsBuilder(); $optionBuilder->setTimeToLive(60*20); $notificationBuilder = new PayloadNotificationBuilder($req->title); $notificationBuilder->setBody($req->message) ->setSound('default'); $dataBuilder = new PayloadDataBuilder(); $dataBuilder->addData(json_decode(json_encode($req), true)); $option = $optionBuilder->build(); $notification = $notificationBuilder->build(); $data = $dataBuilder->build(); $downstreamResponse = FCM::sendToGroup($t, $option, $notification, $data); $downstreamResponse->numberSuccess(); $downstreamResponse->numberFailure(); $downstreamResponse->tokensFailed(); // dd($downstreamResponse); print('notification status ' . $downstreamResponse->numberSuccess()); } } else { //print("tidak ada token yang ditemukan"); } } public function pushPublicToken($req){ $tokens = []; $get = ResourceNotification::where('user_id', -1)->get(); foreach ($get as $g) { // code... array_push($tokens, $g->resource); } $limitToken = array_chunk($tokens, 500); if (sizeof($tokens) > 0){ foreach ($limitToken as $t) { // code... $optionBuilder = new OptionsBuilder(); $optionBuilder->setTimeToLive(60*20); $notificationBuilder = new PayloadNotificationBuilder($req->title); $notificationBuilder->setBody($req->message) ->setSound('default'); $dataBuilder = new PayloadDataBuilder(); $dataBuilder->addData(json_decode(json_encode($req), true)); $option = $optionBuilder->build(); $notification = $notificationBuilder->build(); $data = $dataBuilder->build(); $downstreamResponse = FCM::sendToGroup($t, $option, $notification, $data); $downstreamResponse->numberSuccess(); $downstreamResponse->numberFailure(); $downstreamResponse->tokensFailed(); // dd($downstreamResponse); print('notification status ' . $downstreamResponse->numberSuccess()); } } else { //print("tidak ada token yang ditemukan"); } } public function pushAllUser($req){ $user = User::all(); foreach ($user as $u) { // code... if (Auth::user()->id !== $u->id){ $new = new Notification(); $new->sender_id = Auth::user()->id; $new->receiver_id = $u->id; $new->features_id = $req->features_id; $new->notification_type = $req->notification_type; $new->link_url = $req->link_url; $new->title = $req->title; $new->picture_url = $req->picture_url; $new->message = $req->message; $new->save(); $this->push($new); } } $this->pushPublicToken($req); } public function pushMultipleUser($req){ foreach ($req->receiver_id as $r) { // code... $new = new Notification(); $new->sender_id = Auth::user()->id; $new->receiver_id = $r; $new->features_id = $req->features_id; $new->notification_type = $req->notification_type; $new->link_url = $req->link_url; $new->title = $req->title; $new->picture_url = $req->picture_url; $new->message = $req->message; $new->save(); $this->push($new); } }