Spaces:
Running
Running
File size: 1,465 Bytes
907b200 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Api\BaseController;
use App\Http\Requests\User\ResetPasswordRequest;
use App\Models\User;
use App\Http\Requests\User\CheckEmailRequest;
use App\Services\OtpService;
use App\Helpers\OtpHelper;
class PasswordResetController extends BaseController
{
protected $otpService;
public function __construct(OtpService $otpService)
{
$this->otpService = $otpService;
}
/** ---------------- Password Reset ---------------- */
public function sendForgotPasswordOtp(CheckEmailRequest $request)
{
$data = OtpHelper::sendOtpByType($request->validated()['email'], 'password_reset', $this->otpService);
return $this->successResponse('OTP sent successfully', $data);
}
public function resendResetPasswordOtp(CheckEmailRequest $request)
{
$data = OtpHelper::sendOtpByType($request->validated()['email'], 'password_reset', $this->otpService);
return $this->successResponse('OTP resent successfully', $data);
}
public function resetPassword(ResetPasswordRequest $request)
{
$validated = $request->validated();
$user = User::where('email', $validated['email'])->firstOrFail();
$this->otpService->resetPasswordWithOtp(
$user,
$validated['otp'],
$validated['password']
);
return $this->successResponse('Password reset successfully');
}
}
|