validate([ 'phoneOrEmail' => 'required', 'password' => 'required' ]); $user = User::query() ->when(filter_var($request->phoneOrEmail, FILTER_VALIDATE_EMAIL), function (Builder $query) use ($request) { $query->getQuery()->where('email', $request->phoneOrEmail); }, function (Builder $query) use ($request) { $query->getQuery()->where('phone', $request->phoneOrEmail); }) ->first(); if (!$user) { $message = filter_var($request->phoneOrEmail, FILTER_VALIDATE_EMAIL) ? "User dengan alamat email " . $request->phoneOrEmail . " tidak ditemukan" : "User dengan nomor telepon " . $request->phoneOrEmail . " tidak ditemukan"; return Helper::responseJson(statusCode: Response::HTTP_NOT_FOUND, message: $message); } // $token = rand(1000, 9999); // Menghasilkan angka acak antara 100000 dan 999999 // if($request->phoneOrEmail == 'manager+one@gmail.com' || $request->phoneOrEmail == 'manager+two@gmail.com') // { // $token = 4444; // } // if (filter_var($request->phoneOrEmail, FILTER_VALIDATE_EMAIL)) { // User::query()->find($user->id)->update([ // 'email' => $request->phoneOrEmail, // 'otp' => $token, // 'otp_created_at' => now() // ]); // } else { // User::query()->find($user->id)->update([ // 'phone' => $request->phoneOrEmail, // 'otp' => $token, // 'otp_created_at' => now() // ]); // } // // TODO Send the OTP // if (filter_var($request->phoneOrEmail, FILTER_VALIDATE_EMAIL)) { // // Send Email // //send to alarm // if($request->phoneOrEmail != 'manager+one@gmail.com' && $request->phoneOrEmail != 'manager+two@gmail.com') // { // $nameTo = 'User'; // $dataEmail = [ // 'email' => $request->phoneOrEmail, // 'name' => $nameTo, // 'subject' => 'OTP Login Client Portal Tanggal '. date('Y-m-d H:i:s'), // 'body' => View::make('email/forgot_password', ['token' => $token])->render(), // ]; // Helper::sendEmail($dataEmail); // } // } else { // // Send Whatsapp // } // return Helper::responseJson(message: 'OTP Terkirim'); if (!Hash::check($request->password, $user->password)) { return response(['message' => 'Password Salah'], 403); } return Helper::responseJson( data: [ 'token' => $user->createToken('app')->plainTextToken, 'user' => $user, ], message: 'Selamat Datang' ); } public function validateOtp(Request $request) { $request->validate([ 'phoneOrEmail' => 'required', 'otp' => 'required' ]); $user = User::query() ->when(filter_var($request->phoneOrEmail, FILTER_VALIDATE_EMAIL), function (Builder $query) use ($request) { $query->getQuery()->where('email', $request->phoneOrEmail); }, function (Builder $query) use ($request) { $query->getQuery()->where('phone', $request->phoneOrEmail); }) ->first(); if ($user->otp == $request->otp) { return Helper::responseJson( data: [ 'token' => $user->createToken('app')->plainTextToken, 'user' => $user, ], message: 'Selamat Datang' ); } return Helper::responseJson(status: 'error', message: 'OTP yang anda masukan salah!'); } public function logout(Request $request) { $request->user()->currentAccessToken()->delete(); return Helper::responseJson(message: 'Berhasil Logout.'); } }