File: /mnt/data/ghayatcom/ghayatcom-api/app/Http/Controllers/Api/ChangePasswordController.php
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Requests\ChangePasswordRequest;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Mail;
use App\Mail\PasswordUpdated;
use Exception;
use Throwable;
use Illuminate\Database\QueryException;
class ChangePasswordController extends Controller
{
/**
* Handles the process of changing the account password.
*/
public function changePassword(ChangePasswordRequest $request)
{
try {
DB::beginTransaction();
$user = $request->user();
$user->password = Hash::make($request->new_password);
$user->save();
DB::commit();
Mail::to($user->email)->queue(new PasswordUpdated($user));
return self::sentResponse(200, [], __('digimed_validation.success_response.change_password'));
} catch(Exception | Throwable | QueryException $e) {
DB::rollBack();
return self::sentResponse(500, [], $e->getMessage());
}
}
}