From 76e6ab4e0cd14f89cb717aa1f12b3446cbd4d7b2 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 20 May 2026 09:53:05 +0330 Subject: [PATCH] change edit method --- .../Admin/Requests/Profile/EditRequest.php | 1 - .../GatewayManagementController.php | 36 +++++++++----- .../User/Controllers/ProfileController.php | 20 +++++++- .../User/Requests/Gateway/StoreRequest.php | 3 +- .../User/Requests/Gateway/UpdateRequest.php | 3 +- .../app/User/Requests/Profile/EditRequest.php | 47 +++++-------------- .../0001_01_01_000000_create_users_table.php | 1 - 7 files changed, 57 insertions(+), 54 deletions(-) diff --git a/backend/app/Admin/Requests/Profile/EditRequest.php b/backend/app/Admin/Requests/Profile/EditRequest.php index ccc056b4..6b997c9e 100755 --- a/backend/app/Admin/Requests/Profile/EditRequest.php +++ b/backend/app/Admin/Requests/Profile/EditRequest.php @@ -24,7 +24,6 @@ class EditRequest extends FormRequest */ public function rules(): array { - $user = $this->user(); return [ 'username' => 'string|max:255', 'first_name' => 'required|string', diff --git a/backend/app/User/Controllers/GatewayManagementController.php b/backend/app/User/Controllers/GatewayManagementController.php index 41d62b8c..690d364e 100644 --- a/backend/app/User/Controllers/GatewayManagementController.php +++ b/backend/app/User/Controllers/GatewayManagementController.php @@ -13,6 +13,8 @@ use App\User\Requests\Gateway\UpdateRequest; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\DB; +use Throwable; class GatewayManagementController extends Controller { @@ -29,25 +31,33 @@ class GatewayManagementController extends Controller ); } + /** + * @throws Throwable + */ public function store(StoreRequest $request): JsonResponse { $user = Auth::guard('web')->user(); $logo = $request->has('logo') ? FileFacade::save($request->file('logo'), "{$user->id}") : null; - UserGateway::query()->create([ - 'user_id' => $user->id, - 'username' => $user->username, - 'name' => $request->name, - 'domain' => $request->domain, - 'tax_id' => $request->tax_id, - 'bank_name' => $request->bank_name, - 'account_holder' => $request->account_holder, - 'iban' => $request->iban, - 'business_type_id' => $request->business_type_id, - 'business_type_name' => BusinessTypeEnum::name($request->business_type_id), - 'logo' => $logo, - ]); + DB::transaction(function () use ($user, $logo, $request) { + UserGateway::query()->create([ + 'user_id' => $user->id, + 'username' => $user->username, + 'name' => $request->name, + 'domain' => $request->domain, + 'tax_id' => $request->tax_id, + 'bank_name' => $request->bank_name, + 'account_holder' => $request->account_holder, + 'iban' => $request->iban, + 'business_type_id' => $request->business_type_id, + 'business_type_name' => BusinessTypeEnum::name($request->business_type_id), + 'logo' => $logo, + ]); + + $user->update(['authority_level' => 1]); + }); + return $this->successResponse(); } diff --git a/backend/app/User/Controllers/ProfileController.php b/backend/app/User/Controllers/ProfileController.php index 3d89e5dc..ef007a21 100755 --- a/backend/app/User/Controllers/ProfileController.php +++ b/backend/app/User/Controllers/ProfileController.php @@ -3,6 +3,8 @@ namespace App\User\Controllers; use App\Http\Controllers\Controller; +use App\Models\City; +use App\Models\Province; use App\Traits\ApiResponse; use App\User\Requests\Profile\ChangePasswordRequest; use App\User\Requests\Profile\EditRequest; @@ -23,8 +25,24 @@ class ProfileController extends Controller public function edit(EditRequest $request): JsonResponse { $user = Auth::user(); + $province = Province::query()->find($request->province_id); + $city = City::query()->find($request->city_id); - $user->update($request->validated()); + $user->update([ + 'first_name' => $request->first_name, + 'last_name' => $request->last_name, + 'national_id' => $request->national_id, + 'address' => $request->address, + 'postal_code' => $request->postal_code, + 'phone_number' => $request->phone_number, + 'province_id' => $province->id, + 'province_name' => $province->name, + 'city_id' => $city->id, + 'city_name' => $city->name, + 'birth_date' => $request->birth_date, + 'email' => $request->email, + 'kyc_status' => 1, + ]); return $this->successResponse(); } diff --git a/backend/app/User/Requests/Gateway/StoreRequest.php b/backend/app/User/Requests/Gateway/StoreRequest.php index 2dcc0faa..f7562dd8 100644 --- a/backend/app/User/Requests/Gateway/StoreRequest.php +++ b/backend/app/User/Requests/Gateway/StoreRequest.php @@ -4,6 +4,7 @@ namespace App\User\Requests\Gateway; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Support\Facades\Auth; class StoreRequest extends FormRequest { @@ -12,7 +13,7 @@ class StoreRequest extends FormRequest */ public function authorize(): bool { - return true; + return Auth::guard('web')->user()->kyc_status; } /** diff --git a/backend/app/User/Requests/Gateway/UpdateRequest.php b/backend/app/User/Requests/Gateway/UpdateRequest.php index 30db4db1..749eb4da 100644 --- a/backend/app/User/Requests/Gateway/UpdateRequest.php +++ b/backend/app/User/Requests/Gateway/UpdateRequest.php @@ -4,6 +4,7 @@ namespace App\User\Requests\Gateway; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Support\Facades\Auth; class UpdateRequest extends FormRequest { @@ -12,7 +13,7 @@ class UpdateRequest extends FormRequest */ public function authorize(): bool { - return true; + return Auth::guard('web')->user()->kyc_status; } /** diff --git a/backend/app/User/Requests/Profile/EditRequest.php b/backend/app/User/Requests/Profile/EditRequest.php index 3f7468bd..450ce3fa 100755 --- a/backend/app/User/Requests/Profile/EditRequest.php +++ b/backend/app/User/Requests/Profile/EditRequest.php @@ -4,6 +4,7 @@ namespace App\User\Requests\Profile; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Support\Facades\Auth; use Illuminate\Validation\Rule; use Illuminate\Validation\Validator; @@ -24,47 +25,21 @@ class EditRequest extends FormRequest */ public function rules(): array { - $user = $this->user(); + $user = Auth::guard('web')->user(); return [ - 'first_name' => [ - Rule::prohibitedIf($user->kyc_status == 1), 'string', - ], - 'last_name' => [ - Rule::prohibitedIf($user->kyc_status == 1), 'string', - ], + 'first_name' => 'required|string|max:255', + 'last_name' => 'required|string|max:255', 'national_id' => [ Rule::prohibitedIf($user->kyc_status == 1), 'string', ], - 'address' => 'required', - 'postal_code' => 'required', - 'phone_number' => 'required', - 'province_id' => 'required', - 'city_id' => 'required', - ]; - } - public function after(): array - { - return [ - function (Validator $validator) { - $user = $this->user(); - if ($user->kyc_status == 1) { - $lockedFields = [ - 'first_name', - 'last_name', - 'national_id', - ]; - - foreach ($lockedFields as $field) { - if ($this->filled($field)) { - $validator->errors()->add( - $field, - 'you cannot change this field.' - ); - } - } - } - }, + 'email' => 'required|email|max:255', + 'address' => 'required|string', + 'postal_code' => 'required|string', + 'phone_number' => 'required|string', + 'province_id' => 'required|exists:provinces,id', + 'city_id' => 'required|exists:cities,id', + 'birth_date' => 'required|date', ]; } } diff --git a/backend/database/migrations/0001_01_01_000000_create_users_table.php b/backend/database/migrations/0001_01_01_000000_create_users_table.php index 0ac11763..124ca19a 100755 --- a/backend/database/migrations/0001_01_01_000000_create_users_table.php +++ b/backend/database/migrations/0001_01_01_000000_create_users_table.php @@ -22,7 +22,6 @@ return new class extends Migration $table->string('national_id')->nullable(); $table->string('address')->nullable(); $table->string('postal_code')->nullable(); - $table->string('tax_id')->nullable(); $table->string('phone_number')->nullable(); $table->date('birth_date')->nullable(); $table->foreignId('province_id')->nullable()->constrained('provinces'); -- 2.49.1