File: //var/www/admin.javaapp.co.uk/app/Actions/AdminUpdateProfileAction.php
<?php
namespace App\Actions;
use App\Helpers\Aws;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class AdminUpdateProfileAction
{
public function handle($model, $request)
{
DB::beginTransaction();
try {
$model = new $model();
$update = [];
$update['full_name'] = $request->full_name;
$update['email'] = $request->email;
$update['address'] = $request->address;
$update['updated_at'] = Carbon::now()->timestamp;
$admin = $model->where('id', Auth::user()->id)->first();
if (isset($request->picture__input) && is_file($request->picture__input)) {
$update['profile_picture'] = Aws::uploadImageS3Bucket('images/admin', $request->picture__input, Auth::user()->profile_picture);
} else {
if($admin->profile_picture == ''){
DB::rollback();
session()->flash('error_message', __('validation.validation.image.required'));
return redirect()->back();
}
}
$admin->update($update);
DB::commit();
session()->flash('success_message', __('common.profileUpdatedSuccessfully'));
return redirect()->route(Auth::getDefaultDriver().'.myProfile');
} catch (\Throwable $th) {
DB::rollback();
session()->flash('error_message', __('common.somethingWentWrong'));
return redirect()->back();
}
}
}