all()); // die(); $validator = Validator::make($request->all(), [ 'user_id' => 'required', // 'otp' => 'required' ]); if ($validator->fails()) { return response()->json(['error' => 'Please enter Otp', 'status' => 204]); } $temp_user = Tempuser::where('id', $request->user_id)->first(); // otp verification failed handling $current_time = Carbon::now('Asia/colombo'); if ($temp_user->otp != $request->otp) { return response()->json(['error' => 'Incorret OTP', 'status' => 400]); } elseif ($temp_user->otp == $request->otp && $current_time->isAfter($temp_user->expire_at)) { return response()->json(['error' => 'Your OTP has been expired', 'status' => 400]); } // validating otp if ($temp_user->otp == $request->otp) { $user = new User(); $user->name = $temp_user->name; $user->email = $temp_user->email; $user->contact_number = $temp_user->contact_number; $user->password = $temp_user->password; $user->is_verified = "1"; $user->expire_at = $temp_user->expire_at; $user->save(); if ($user->id != '') { $temp_user->delete(); return response()->json(['message' => 'OTP has been sent to your mail and phone', 'status' => 200]); } else { return response()->json(['error' => 'registration failed', 'status' => 404]); } } else { return response()->json(['error' => 'Incorrect otp, please try again', 'status' => 204]); } } // resend otp while login public function request_otp(Request $request) { // $validator = Validator::make( // $request->all(), // [ // 'user_id' => 'required|exists:temp_users,id', // ] // ); // if ($validator->fails()) { // return response()->json(['error' => $validator->errors()], 204); // } if (Session::has('user-registration')) { $session = Session::get('user-registration'); $otp = rand(1000, 9999); $session['otp'] = $otp; $mailData = [ 'title' => 'Mail from ItSolutionStuff.com', 'body' => 'This is for testing email using smtp.' ]; Mail::to($session['email'])->send(new OtpMail($mailData, $otp)); Session::put('user-registration', $session); return response()->json(['message' => 'OTP has been sent to your mail and phone', 'status' => 200]); } else { return redirect()->route('register'); } $user = Tempuser::where('id', $request->user_id)->first(); try { if ($user) { $user->expires_at = Carbon::now('Asia/colombo')->addMinutes(2); $user->update(); return response()->json(['message' => 'OTP has been sent to your mail and phone', 'status' => 200]); } } catch (\Exception $e) { return response()->json(['error' => 'Netwrok Error! Please try again after sometime.', 'status' => 500]); } } }