61 lines
2.0 KiB
PHP
61 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Frontend;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Validator;
|
|
use Carbon\Carbon;
|
|
use App\Models\Tempuser;
|
|
use App\Models\Frontend\User;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class TempuserController extends Controller
|
|
{
|
|
public function register(Request $request){
|
|
|
|
$validator = Validator::make($request->all(),[
|
|
'name'=> 'required',
|
|
'contact_number'=> 'required|unique:users,contact_number',
|
|
'email'=> 'required|unique:users,email',
|
|
'password'=> 'required|confirmed|min:8|regex:(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$',
|
|
'password' => 'min:8|required_with:password_confirmation|same:password_confirmation',
|
|
'password_confirmation' => 'min:8'
|
|
]);
|
|
if ($validator->fails())
|
|
{
|
|
return response()->json(['error'=>$validator->errors(),'status'=>204]);
|
|
}
|
|
|
|
try {
|
|
$otp = $this->generateOtp();
|
|
|
|
$data = new Tempuser();
|
|
$data->name = $request->input('name');
|
|
$data->contact_number = $request->input('contact_number');
|
|
$data->email = $request->input('email');
|
|
$data->password = Hash::make($request->input('password'));
|
|
$data->otp = $otp['otp'];
|
|
$data->expires_at = $otp['expires_at'];
|
|
$data->save();
|
|
|
|
return response()->json(['message'=>'OTP has been sent to your mail and phone','user_id'=>$data->id, 'status'=>200]);
|
|
} catch (\Exception $e) {
|
|
return response()->json(['error' => 'Netwrok Error! Please try again after sometime.', 'status'=>500]);
|
|
}
|
|
|
|
|
|
}
|
|
// otp generating function
|
|
public function generateOtp()
|
|
{
|
|
// Create a New OTP
|
|
$otp_array = [
|
|
'otp' => rand(1234, 9999),
|
|
'expires_at' => Carbon::now('Asia/colombo')->addMinutes(2)->toDateTimeString()
|
|
];
|
|
return $otp_array;
|
|
}
|
|
}
|