| @@ -1,137 +1,137 @@ | |||
| <?php | |||
| namespace App\Http\Controllers; | |||
| use Illuminate\Http\Request; | |||
| use App\Http\Controllers\Api\BaseController; | |||
| use Config; | |||
| use File; | |||
| use Carbon\Carbon; | |||
| use App\Model\Staff; | |||
| use App\Model\StaffDetail; | |||
| use App\Model\Module\Notification; | |||
| class NotificationController extends BaseController | |||
| { | |||
| /** | |||
| * Create save firebase token controller. | |||
| * | |||
| * @return json | |||
| */ | |||
| public function saveToken(Request $request) { | |||
| $staff = Staff::where('_id', $request->_id)->first(); | |||
| if(!empty($staff)){ | |||
| $staff->token_firebase = $request->token; | |||
| $staff->save(); | |||
| return $this->sendResponse($staff,'Berjaya kemaskini firebase token'); | |||
| }else{ | |||
| return $this->sendError('','Tidak berjaya kemaskini firebase token'); | |||
| } | |||
| } | |||
| /** | |||
| * Create notification controller. | |||
| * | |||
| * @return json | |||
| */ | |||
| public function createNotifications($title, $msg, array $token) { | |||
| $fcmUrl = 'https://fcm.googleapis.com/fcm/send'; | |||
| $notification = [ | |||
| 'title' => $title, | |||
| 'body' => $msg, | |||
| 'icon' => '', | |||
| 'sound' => true, | |||
| ]; | |||
| $extraNotificationData = ["message" => $notification]; | |||
| $fcmNotification = [ | |||
| 'registration_ids' => $token, //multple token array | |||
| 'notification' => $notification, | |||
| 'data' => $extraNotificationData | |||
| ]; | |||
| $headers = [ | |||
| 'Authorization: key=AIzaSyCJQ2HZW7dr1l1ZEcM__Ywd3fyF832eoOc', | |||
| 'Content-Type: application/json' | |||
| ]; | |||
| $ch = curl_init(); | |||
| curl_setopt($ch, CURLOPT_URL,$fcmUrl); | |||
| curl_setopt($ch, CURLOPT_POST, true); | |||
| curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); | |||
| curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | |||
| curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); | |||
| curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fcmNotification)); | |||
| $response = curl_exec($ch); | |||
| curl_close($ch); | |||
| return $response; | |||
| } | |||
| public function sendNotification(Request $request){ | |||
| $title = $request->title; | |||
| $msg = $request->msg; | |||
| $register_id = $request->register_id; | |||
| if($register_id != null){ | |||
| $result = $this->createNotifications($title, $msg, $register_id); | |||
| $response = json_decode($result); | |||
| foreach ($response->results as $key => $r) { | |||
| if(!empty($r->error)){} | |||
| else if(!empty($r->message_id)){ | |||
| $staff = Staff::with('StaffDetail')->where('token_firebase',$register_id[$key])->first(); | |||
| if(!empty($staff)){ | |||
| $dataNoti = [ | |||
| 'title' => $request->title, | |||
| 'body' => $request->msg, | |||
| ]; | |||
| $staff->notification()->create($dataNoti); | |||
| } | |||
| } | |||
| } | |||
| return $this->sendResponse($response,'Berjaya hantar notifikasi'); | |||
| } | |||
| } | |||
| public function getNotificationMobile(Request $request){ | |||
| $staff = Staff::with('StaffDetail','Notification')->where('api_token', $request->api_token)->first(); | |||
| if(!empty($staff)){ | |||
| $noti = $staff->Notification; | |||
| return $this->sendResponse($noti,'Berjaya dapatkan notifikasi'); | |||
| }else{ | |||
| return $this->sendError('','Kakitangan tidak ditemui!'); | |||
| } | |||
| } | |||
| public function getNotificationWeb(Request $request){ | |||
| $staff = Staff::with('StaffDetail','Notification')->where('_id', $request->_id)->first(); | |||
| if(!empty($staff)){ | |||
| $noti = $staff->Notification; | |||
| return $this->sendResponse($noti,'Berjaya dapatkan notifikasi'); | |||
| }else{ | |||
| return $this->sendError('','Kakitangan tidak ditemui!'); | |||
| } | |||
| } | |||
| public function deleteNotification(Request $request){ | |||
| $noti = Notification::where('_id', $request->_id)->first(); | |||
| if(!empty($noti)){ | |||
| $noti->delete(); | |||
| return $this->sendResponse($noti,'Berjaya buang notifikasi'); | |||
| }else{ | |||
| return $this->sendError('','Data tidak ditemui!'); | |||
| } | |||
| } | |||
| } | |||
| <?php | |||
| namespace App\Http\Controllers; | |||
| use Illuminate\Http\Request; | |||
| use App\Http\Controllers\Api\BaseController; | |||
| use Config; | |||
| use File; | |||
| use Carbon\Carbon; | |||
| use App\Model\Staff; | |||
| use App\Model\StaffDetail; | |||
| use App\Model\Module\Notification; | |||
| class NotificationController extends BaseController | |||
| { | |||
| /** | |||
| * Create save firebase token controller. | |||
| * | |||
| * @return json | |||
| */ | |||
| public function saveToken(Request $request) { | |||
| $staff = Staff::where('_id', $request->_id)->first(); | |||
| if(!empty($staff)){ | |||
| $staff->token_firebase = $request->token; | |||
| $staff->save(); | |||
| return $this->sendResponse($staff,'Berjaya kemaskini firebase token'); | |||
| }else{ | |||
| return $this->sendError('','Tidak berjaya kemaskini firebase token'); | |||
| } | |||
| } | |||
| /** | |||
| * Create notification controller. | |||
| * | |||
| * @return json | |||
| */ | |||
| public function createNotifications($title, $msg, array $token) { | |||
| $fcmUrl = 'https://fcm.googleapis.com/fcm/send'; | |||
| $notification = [ | |||
| 'title' => $title, | |||
| 'body' => $msg, | |||
| 'icon' => '', | |||
| 'sound' => true, | |||
| ]; | |||
| $extraNotificationData = ["message" => $notification]; | |||
| $fcmNotification = [ | |||
| 'registration_ids' => $token, //multple token array | |||
| 'notification' => $notification, | |||
| 'data' => $extraNotificationData | |||
| ]; | |||
| $headers = [ | |||
| 'Authorization: key=AIzaSyBJMDMk5s1Naxq5pW0cfcC4sSg_ExMyJYM', | |||
| 'Content-Type: application/json' | |||
| ]; | |||
| $ch = curl_init(); | |||
| curl_setopt($ch, CURLOPT_URL,$fcmUrl); | |||
| curl_setopt($ch, CURLOPT_POST, true); | |||
| curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); | |||
| curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | |||
| curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); | |||
| curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fcmNotification)); | |||
| $response = curl_exec($ch); | |||
| curl_close($ch); | |||
| return $response; | |||
| } | |||
| public function sendNotification(Request $request){ | |||
| $title = $request->title; | |||
| $msg = $request->msg; | |||
| $register_id = $request->register_id; | |||
| if($register_id != null){ | |||
| $result = $this->createNotifications($title, $msg, $register_id); | |||
| $response = json_decode($result); | |||
| foreach ($response->results as $key => $r) { | |||
| if(!empty($r->error)){} | |||
| else if(!empty($r->message_id)){ | |||
| $staff = Staff::with('StaffDetail')->where('token_firebase',$register_id[$key])->first(); | |||
| if(!empty($staff)){ | |||
| $dataNoti = [ | |||
| 'title' => $request->title, | |||
| 'body' => $request->msg, | |||
| ]; | |||
| $staff->notification()->create($dataNoti); | |||
| } | |||
| } | |||
| } | |||
| return $this->sendResponse($response,'Berjaya hantar notifikasi'); | |||
| } | |||
| } | |||
| public function getNotificationMobile(Request $request){ | |||
| $staff = Staff::with('StaffDetail','Notification')->where('api_token', $request->api_token)->first(); | |||
| if(!empty($staff)){ | |||
| $noti = $staff->Notification; | |||
| return $this->sendResponse($noti,'Berjaya dapatkan notifikasi'); | |||
| }else{ | |||
| return $this->sendError('','Kakitangan tidak ditemui!'); | |||
| } | |||
| } | |||
| public function getNotificationWeb(Request $request){ | |||
| $staff = Staff::with('StaffDetail','Notification')->where('_id', $request->_id)->first(); | |||
| if(!empty($staff)){ | |||
| $noti = $staff->Notification; | |||
| return $this->sendResponse($noti,'Berjaya dapatkan notifikasi'); | |||
| }else{ | |||
| return $this->sendError('','Kakitangan tidak ditemui!'); | |||
| } | |||
| } | |||
| public function deleteNotification(Request $request){ | |||
| $noti = Notification::where('_id', $request->_id)->first(); | |||
| if(!empty($noti)){ | |||
| $noti->delete(); | |||
| return $this->sendResponse($noti,'Berjaya buang notifikasi'); | |||
| }else{ | |||
| return $this->sendError('','Data tidak ditemui!'); | |||
| } | |||
| } | |||
| } | |||