Files
freeu-project/app/Http/Controllers/Frontend/TempuserController.php
Ritikesh yadav c661166e1d first commit
2024-03-28 14:52:40 +05:30

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;
}
}