diff --git a/Modules/Client/Http/Controllers/Api/AuthController.php b/Modules/Client/Http/Controllers/Api/AuthController.php index 8a5aa11c..9761eafa 100755 --- a/Modules/Client/Http/Controllers/Api/AuthController.php +++ b/Modules/Client/Http/Controllers/Api/AuthController.php @@ -15,12 +15,25 @@ class AuthController extends Controller public function requestOtp(Request $request) { $request->validate([ - // 'phone' => 'required' 'phone_or_email' => 'required' ]); + $user = User::query() + ->when(filter_var($request->phone_or_email, FILTER_VALIDATE_EMAIL), function (Builder $query) use ($request) { + $query->getQuery()->where('email', $request->phone_or_email); + }, function (Builder $query) use ($request) { + $query->getQuery()->where('phone', $request->phone_or_email); + }) + ->first(); + + if (!$user) { + $message = filter_var($request->phone_or_email, FILTER_VALIDATE_EMAIL) ? "User dengan alamat email " . $request->phone_or_email . " tidak ditemukan" : "User dengan nomor telepon " . $request->phone_or_email . " tidak ditemukan"; + + return Helper::responseJson(statusCode: Response::HTTP_NOT_FOUND, message: $message); + } + if (filter_var($request->phone_or_email, FILTER_VALIDATE_EMAIL)) { - $user = User::updateOrCreate([ + $user = User::query()->update([ 'email' => $request->phone_or_email ], [ 'email' => $request->phone_or_email, @@ -28,7 +41,7 @@ class AuthController extends Controller 'otp_created_at' => now() ]); } else { - $user = User::updateOrCreate([ + $user = User::query()->update([ 'phone' => $request->phone_or_email ], [ 'phone' => $request->phone_or_email, @@ -37,12 +50,6 @@ class AuthController extends Controller ]); } - if (!$user) { - $message = filter_var($request->phone_or_email, FILTER_VALIDATE_EMAIL) ? "User dengan alamat email " . $request->phone_or_email . " tidak ditemukan" : "User dengan nomor telepon " . $request->phone_or_email . " tidak ditemukan"; - - return Helper::responseJson(statusCode: Response::HTTP_NOT_FOUND, message: $message); - } - // TODO Send the OTP if (filter_var($request->phone_or_email, FILTER_VALIDATE_EMAIL)) { // Send Email