ok
Direktori : /home2/selectio/public_html/myclassicfit.com/app/Http/Controllers/api/v1/auth/ |
Current File : /home2/selectio/public_html/myclassicfit.com/app/Http/Controllers/api/v1/auth/ForgotPassword.php |
<?php namespace App\Http\Controllers\api\v1\auth; use App\CPU\Helpers; use App\CPU\SMS_module; use App\Http\Controllers\Controller; use App\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Str; use function App\CPU\translate; class ForgotPassword extends Controller { public function reset_password_request(Request $request) { $validator = Validator::make($request->all(), [ 'identity' => 'required|min:6', ]); if ($validator->fails()) { return response()->json(['errors' => Helpers::error_processor($validator)], 403); } $verification_by = Helpers::get_business_settings('forgot_password_verification'); DB::table('password_resets')->where('user_type','customer')->where('identity', 'like', "%{$request['identity']}%")->delete(); if ($verification_by == 'email') { $customer = User::Where(['email' => $request['identity']])->first(); if (isset($customer)) { $token = Str::random(120); DB::table('password_resets')->insert([ 'identity' => $customer['email'], 'token' => $token, 'user_type'=>'customer', 'created_at' => now(), ]); $reset_url = url('/') . '/customer/auth/reset-password?token=' . $token; $emailServices_smtp = Helpers::get_business_settings('mail_config'); if ($emailServices_smtp['status'] == 0) { $emailServices_smtp = Helpers::get_business_settings('mail_config_sendgrid'); } if ($emailServices_smtp['status'] == 1) { Mail::to($customer['email'])->send(new \App\Mail\PasswordResetMail($reset_url)); $response = translate('check_your_email'); }else{ $response= translate('email_failed'); } return response()->json(['message' => $response], 200); } } elseif ($verification_by == 'phone') { $customer = User::where('phone', 'like', "%{$request['identity']}%")->first(); if (isset($customer)) { $token = rand(1000, 9999); DB::table('password_resets')->insert([ 'identity' => $customer['phone'], 'token' => $token, 'user_type'=>'customer', 'created_at' => now(), ]); SMS_module::send($customer->phone, $token); return response()->json(['message' => 'otp sent successfully.'], 200); } } return response()->json(['errors' => [ ['code' => 'not-found', 'message' => 'user not found!'] ]], 404); } public function otp_verification_submit(Request $request) { $validator = Validator::make($request->all(), [ 'identity' => 'required', 'otp' => 'required' ]); if ($validator->fails()) { return response()->json(['errors' => Helpers::error_processor($validator)], 403); } $id = $request['identity']; $data = DB::table('password_resets')->where('user_type','customer')->where(['token' => $request['otp']]) ->where('identity', 'like', "%{$id}%") ->first(); if (isset($data)) { return response()->json(['message' => 'otp verified.'], 200); } return response()->json(['errors' => [ ['code' => 'not-found', 'message' => 'invalid OTP'] ]], 404); } public function reset_password_submit(Request $request) { $validator = Validator::make($request->all(), [ 'identity' => 'required', 'otp' => 'required', 'password' => 'required|same:confirm_password|min:8', ]); if ($validator->fails()) { return response()->json(['errors' => Helpers::error_processor($validator)], 403); } $data = DB::table('password_resets') ->where('user_type','customer') ->where('identity', 'like', "%{$request['identity']}%") ->where(['token' => $request['otp']])->first(); if (isset($data)) { DB::table('users')->where('phone', 'like', "%{$data->identity}%") ->update([ 'password' => bcrypt(str_replace(' ', '', $request['password'])) ]); DB::table('password_resets') ->where('user_type','customer') ->where('identity', 'like', "%{$request['identity']}%") ->where(['token' => $request['otp']])->delete(); return response()->json(['message' => 'Password changed successfully.'], 200); } return response()->json(['errors' => [ ['code' => 'invalid', 'message' => 'Invalid token.'] ]], 400); } }