function($q){ $q->select('_id','full_name','identity','mobile','address','gred','no_badan','roles_access','profile_img'); }])->where('no_badan',$request->no_badan)->where(function($q){ $q->where('roles_access','PenguatKuasa')->orWhere('roles_access','PPenguatKuasa'); })->first(); if (!empty($user)) { if(Hash::check($request->password, $user->password)){ // Check authorized do { $user->last_login_at = Carbon::now(new \DateTimeZone('Asia/Kuala_Lumpur'))->toDateTimeString(); $user->last_login_ip = $request->getClientIp(); $user->api_token = ''; $user->authorized = false; $user->save(); }while($user->authorized); $token_id = ''; do { $token_id = Str::random(32); } while (Staff::where("token_id", "=", $token_id)->first() instanceof Staff); $user->api_token = $token_id; $user->last_login_at = Carbon::now(new \DateTimeZone('Asia/Kuala_Lumpur'))->toDateTimeString(); $user->last_login_ip = $request->getClientIp(); $user->authorized = true; $user->token_firebase = ''; $user->save(); //get all staff's related department names & ids $staff = StaffDetail::with('Department')->where('_id', $user->_id)->first(); $jabatan = array(); if(!empty($staff->Department)) { foreach ($staff->Department as $key => $d) { array_push($jabatan , array( 'jbnama' => $d->jnama, 'jbkod' => $d->_id, )); } } //get all notice sections & deedlaws $notis = array(); // $sec_faulty = Faulty::with('DeedLaw', 'Department')->whereIn('itkod', ['33', '9', '8', '10', '14', '36'])->get(); // if(!empty($sec_faulty)) // { // foreach ($sec_faulty as $sf) // { // array_push($notis, array( // 'k_id' => $sf->_id, // 'k_nama' => '['.$sf->sketr.'] '.$sf->nama, // 'a_id' => $sf->DeedLaw->_id, // 'a_nama' => $sf->DeedLaw->nama, // )); // } // } array_push($data, array( 'User' => $user->StaffDetail, 'token' => $user->api_token, 'jawatan' => $user->StaffDetail->gred, 'token_firebase' => $user->token_firebase, 'jabatan' => $jabatan, 'notis' => $notis, )); return $this->sendResponse($data, 'Berjaya log masuk'); }else { return $this->sendError('Gagal', 'Emel atau kata-laluan tidak tepat'); } }else { return $this->sendError('Gagal', 'Rekod tidak dijumpai'); } } public function requestStaffLogout(Request $request){ $loginUser = Staff::where('api_token', $request->api_token)->first(); if(!empty($loginUser)){ $loginUser->last_login_at = Carbon::now(new \DateTimeZone('Asia/Kuala_Lumpur'))->toDateTimeString(); $loginUser->last_login_ip = $request->getClientIp(); $loginUser->api_token = ''; $loginUser->authorized = false; $loginUser->save(); return $this->sendResponse('Berjaya', 'Berjaya log keluar'); }else { return $this->sendError('Gagal', 'Maaf, penguatkuasa tidak dapat log keluar'); } } public function checkDeviceToken(Request $request){ $loginUser = Staff::where('api_token', $request->api_token)->first(); if(!empty($loginUser)){ return $this->sendResponse($loginUser->api_token, 'Successfully get detail'); }else { return $this->sendError('Failed', 'User Not Found'); } } public function testing(Request $request) { } }