GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: /var/www/api.vaspayment.com/app/Http/Controllers/Authentication/ForgetPassword.php
<?php

namespace App\Http\Controllers\Authentication;

use App\Models\User;
use App\Services\OtpService;
use Illuminate\Http\Request; 
use App\Services\ActivityLogger;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Password;
use Illuminate\Validation\ValidationException;

class ForgetPassword extends Controller
{
    public function forgetPassword(Request $request)
    {
        try {
            $validatedData = $request->validate([
                "email" => "required|exists:users,email|email_validation",
                "device_data" => "required|string",
            ]);
            $user = User::where("email", $validatedData['email'])->first();

            if (!$user) {
                return response()->json(['error' => 'Unknown email. Pls try again with valid email'], 404);
            }

            // Log the user activity
            $device = $validatedData['device_data'];
            $activityLogger = app(ActivityLogger::class);
            $userIp = request($key = null, $default = null)->ip();
            $activityLogger->log($userIp,'You requested for reset of password', $user->id, $user->role, $device);

            // Email OTP Services
            $otpService = app(OtpService::class);
            $otpService->sendOtpToEmail($user['email'], $user['name']);

            return response()->json(['status' => 'success', 'message' => 'Password reset otp sent successfully to your email.'], 200);
            
        } catch (ValidationException $e) {
            return response()->json([
                'status' => 'error',
                'message' => $e->getMessage()
            ], 422);
        }

       
    }
}