105 lines
3.7 KiB
PHP
105 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Frontend;
|
|
|
|
use Mail;
|
|
use App\Mail\OtpMail;
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Validator;
|
|
use Carbon\Carbon;
|
|
use App\Models\Frontend\User;
|
|
use App\Models\Tempuser;
|
|
use Illuminate\Support\Facades\Session;
|
|
use Illuminate\Support\Facades\Hash;
|
|
|
|
class RegistrationController extends Controller
|
|
{
|
|
// verify otp
|
|
public function verify_otp(Request $request)
|
|
{
|
|
// print_r($request->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]);
|
|
}
|
|
}
|
|
}
|