| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- namespace App\Http\Controllers;
- use App\Http\Requests\ForgotPasswordRequest;
- use App\Http\Requests\VerifyCodeRequest;
- use App\Http\Requests\ResetPasswordRequest;
- use App\Services\PasswordResetService;
- use Illuminate\Http\JsonResponse;
- class PasswordResetController extends Controller
- {
- public function __construct(protected PasswordResetService $passwordResetService) {}
- public function forgotPassword(ForgotPasswordRequest $request): JsonResponse
- {
- $validated = $request->validated();
- $sent = $this->passwordResetService->sendCode(
- email: $validated['email'],
- tipo: $validated['tipo'],
- );
- if (!$sent) {
- return $this->errorResponse(
- message: __('auth.wrong_type'),
- code: 403,
- );
- }
- return $this->successResponse(
- message: __('auth.password_reset_sent'),
- );
- }
- public function verifyCode(VerifyCodeRequest $request): JsonResponse
- {
- $validated = $request->validated();
- $valid = $this->passwordResetService->verifyCode(
- email: $validated['email'],
- code: $validated['codigo'],
- );
- if (!$valid) {
- return $this->errorResponse(
- message: __('auth.password_reset_invalid'),
- code: 422,
- );
- }
- return $this->successResponse(
- message: 'OK',
- );
- }
- public function resetPassword(ResetPasswordRequest $request): JsonResponse
- {
- $validated = $request->validated();
- $reset = $this->passwordResetService->resetPassword(
- email: $validated['email'],
- code: $validated['codigo'],
- password: $validated['password'],
- );
- if (!$reset) {
- return $this->errorResponse(
- message: __('auth.password_reset_invalid'),
- code: 422,
- );
- }
- return $this->successResponse(
- message: __('auth.password_reset_success'),
- );
- }
- }
|