verifMail = new VerifMail(); } public function loginUser(Request $request) { $validadte = Validator::make($request->all(), [ 'email' => 'required|email', 'password' => 'required', ]); $dataEmail = $request->email; if ($validadte->fails()) { return $this->sendMassage($validadte->errors()->first(), 400, false); } else { $customer = User::where('email', $dataEmail)->first(); if ($customer) { if (Hash::check($request->password, $customer->password)) { $token = Str::random(200); User::where('email', $dataEmail)->update([ 'token' => $token, ]); $dataCustomer = User::where('email', $dataEmail)->first(); return $this->sendMassage($dataCustomer, 200, true); } return $this->sendMassage('Password salah', 400, false); } return $this->sendMassage('Username tidak ditemukan', 400, false); } } public function loginPegawai(Request $request) { $validadte = Validator::make($request->all(), [ 'email' => 'required|email', 'password' => 'required', ]); $dataEmail = $request->email; if ($validadte->fails()) { return $this->sendMassage($validadte->errors()->first(), 400, false); } else { $customer = User::where('email', $dataEmail)->first(); if ($customer) { if (Hash::check($request->password, $customer->password)) { $token = Str::random(200); User::where('email', $dataEmail)->update([ 'token' => $token, ]); $dataCustomer = User::where('email', $dataEmail)->first(); return $this->sendMassage($dataCustomer, 200, true); } return $this->sendMassage('Password salah', 400, false); } return $this->sendMassage('Username tidak ditemukan', 400, false); } } public function registerUser(Request $request) { $validadte = Validator::make($request->all(), [ 'nama' => 'required', 'email' => 'required|email', ]); $RandomNumber = rand(10000, 99999); if ($validadte->fails()) { return $this->sendMassage($validadte->errors()->first(), 400, false); } else { $dataEmail = $request->input('email'); $customer = User::where('email', $dataEmail)->first(); if ($customer) { return $this->sendMassage('Akun yang anda gunakan telah terdapat pada list', 400, false); } else { $isRegister = User::create([ 'id_user' => "IDCUST" . $RandomNumber, 'nama' => $request->input('nama'), 'no_telepon' => $request->input('no_telepon'), 'alamat' => $request->input('alamat'), 'email' => $request->input('email'), 'id_role' => "1", 'password' => Hash::make($request->input('password')), 'longitude' => $request->input('longitude'), 'latitude' => $request->input('latitude'), ]); if (isset($isRegister)) { $dataUser = [ 'email' => $dataEmail, 'kode' => null ]; return $this->sendMassage("Selamat anda berhasil registrasi", 200, true); } } } } function infoPegawai(Request $request) { $cekPegawaiFree = User::where('user.id_role', 2) ->get() ->pluck('id_user')->toArray(); $cekPegawaiNotFree = User::leftJoin('pickup', 'user.id_user', '=', 'pickup.id_pegawai') ->where('user.id_role', 2) ->where(function ($query) { $query->orWhere('pickup.status_penjemputan', 'pending') ->orWhere('pickup.status_penjemputan', 'pickup'); }) ->get() ->pluck('id_user') ->toArray(); $pegawaiBebas = User::whereIn('id_user', array_diff($cekPegawaiFree, $cekPegawaiNotFree))->get()->toArray(); $jumlahPegawaiBebas = count($pegawaiBebas); $jumlahPegawaiTotal = count($cekPegawaiFree); $hasil = "$jumlahPegawaiBebas/$jumlahPegawaiTotal"; return $this->sendMassage($hasil, 200, true); } function slotAntri(Request $request) { $jumlahAntrian = Pickup::where(function ($query) { $query->orWhere('pickup.status_penjemputan', 'pending') ->orWhere('pickup.status_penjemputan', 'pickup'); })->count(); if ($jumlahAntrian >= 10) { return $this->sendMassage("0/10", 200, true); } else { $hasil = 10 - $jumlahAntrian; $infoSlot = "$hasil/10"; return $this->sendMassage($infoSlot, 200, true); } } // Function Massage public function sendMassage($text, $kode, $status) { return response()->json([ 'data' => $text, 'code' => $kode, 'status' => $status ], $kode); } }