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);
}
}
}