123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use Illuminate\Auth\Events\PasswordReset;
- use Auth;
- use Nexmo;
- use App\Models\OtpConfiguration;
- use App\Models\User;
- use App\Utility\SmsUtility;
- use Twilio\Rest\Client;
- use Hash;
- class OTPVerificationController extends Controller
- {
- /**
- * Display a listing of the resource.
- *
- * @return \Illuminate\Http\Response
- */
- public function verification(Request $request){
- if (Auth::check() && Auth::user()->email_verified_at == null) {
- return view('otp_systems.frontend.user_verification');
- }
- else {
- flash('You have already verified your number')->warning();
- return redirect()->route('home');
- }
- }
- /**
- * @param \Illuminate\Http\Request $request
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function verify_phone(Request $request){
- $user = Auth::user();
- if ($user->verification_code == $request->verification_code) {
- $user->email_verified_at = date('Y-m-d h:m:s');
- $user->save();
- flash('Your phone number has been verified successfully')->success();
- return redirect()->route('home');
- }
- else{
- flash('Invalid Code')->error();
- return back();
- }
- }
- /**
- * @param \Illuminate\Http\Request $request
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function resend_verificcation_code(Request $request){
- $user = Auth::user();
- $user->verification_code = rand(100000,999999);
- $user->save();
- SmsUtility::phone_number_verification($user);
- return back();
- }
- /**
- * @param \Illuminate\Http\Request $request
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function reset_password_with_code(Request $request){
- if (($user = User::where('phone', $request->phone)->where('verification_code', $request->code)->first()) != null) {
- if($request->password == $request->password_confirmation){
- $user->password = Hash::make($request->password);
- $user->email_verified_at = date('Y-m-d h:m:s');
- $user->save();
- event(new PasswordReset($user));
- auth()->login($user, true);
- if(auth()->user()->user_type == 'admin' || auth()->user()->user_type == 'staff')
- {
- return redirect()->route('admin.dashboard');
- }
- return redirect()->route('home');
- }
- else {
- flash("Password and confirm password didn't match")->warning();
- return back();
- }
- }
- else {
- flash("Verification code mismatch")->error();
- return back();
- }
- }
- /**
- * @param User $user
- * @return void
- */
- public function send_code($user){
- SmsUtility::phone_number_verification($user);
- }
- /**
- * @param Order $order
- * @return void
- */
- public function send_order_code($order){
- $phone = json_decode($order->shipping_address)->phone;
- if($phone != null){
- SmsUtility::order_placement($phone, $order);
- }
- }
- /**
- * @param Order $order
- * @return void
- */
- public function send_delivery_status($order){
- $phone = json_decode($order->shipping_address)->phone;
- if($phone != null){
- SmsUtility::delivery_status_change($phone, $order);
- }
- }
- /**
- * @param Order $order
- * @return void
- */
- public function send_payment_status($order){
- $phone = json_decode($order->shipping_address)->phone;
- if($phone != null){
- SmsUtility::payment_status_change($phone, $order);
- }
- }
- }
|