From 094232cc79874a8fe396af366af203bbaeb418dc Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Mon, 23 Jun 2025 15:34:30 +0500 Subject: [PATCH] wip --- .../Api/CardPin/CardPinController.php | 83 +++++-------- .../CardPin/Requests/CardPinUpdateRequest.php | 114 ++++++++++++++++++ 2 files changed, 144 insertions(+), 53 deletions(-) create mode 100644 app/Http/Controllers/Api/CardPin/Requests/CardPinUpdateRequest.php diff --git a/app/Http/Controllers/Api/CardPin/CardPinController.php b/app/Http/Controllers/Api/CardPin/CardPinController.php index 1ae7941..dec64ef 100644 --- a/app/Http/Controllers/Api/CardPin/CardPinController.php +++ b/app/Http/Controllers/Api/CardPin/CardPinController.php @@ -4,10 +4,12 @@ namespace App\Http\Controllers\Api\CardPin; use App\Http\Controllers\Api\CardPin\Requests\CardPinIndexResource; use App\Http\Controllers\Api\CardPin\Requests\CardPinStoreRequest; +use App\Http\Controllers\Api\CardPin\Requests\CardPinUpdateRequest; use App\Http\Controllers\Controller; use App\Models\Order\Card\CardPin\CardPin; use App\Repos\Order\OrderRepo; use Dedoc\Scramble\Attributes\Group; +use Illuminate\Database\Eloquent\Model; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Str; @@ -81,62 +83,37 @@ class CardPinController extends Controller return response()->json(new CardPinIndexResource($order)); } - // /** - // * UPDATE* - // * - // * ID ugradyp `route`-da update edip bilyan. Base App Enum-lardan peydalan. Panelkadan gor. - // */ - // public function update(Request $request, CardBalance $order): JsonResponse - // { - // $data = $request->validate([ - // /** - // * @example I-AS - // */ - // 'passport_serie' => ['sometimes', Rule::in(array_keys(PassportRepo::values()))], + /** + * UPDATE* + * + * ID ugradyp `route`-da update edip bilyan. Base App Enum-lardan peydalan. Panelkadan gor. + */ + public function update(CardPinUpdateRequest $request, CardPin $order): JsonResponse + { + $data = array_merge($request->all(), $this->uploadedFiles($request)); - // /** - // * @example 379514 - // */ - // 'passport_id' => ['sometimes', 'numeric', 'digits:6'], + Model::unguarded(function () use ($order, $data) { + $order->update($data); + }); - // /** - // * @example 9934612100000243 - // */ - // 'card_number' => ['sometimes', 'digits:16'], + return response()->json([ + 'message' => __('Successfully updated'), + ]); + } - // /** - // * @example 12 - // */ - // 'card_month' => ['sometimes', Rule::in(array_keys(DateHelperRepository::staticNumberMonths()))], + /** + * DELETE* + */ + public function destroy(CardPin $order): JsonResponse + { + if ($order->user_id != auth()->id()) { + return response()->json(status: 403); + } - // /** - // * @example 2049 - // */ - // 'card_year' => ['sometimes', Rule::in(array_keys(DateHelperRepository::staticNumberYears()))], - // ]); + $order->delete(); - // Model::unguarded(function () use ($order, $data) { - // $order->update($data); - // }); - - // return response()->json([ - // 'message' => __('Successfully updated'), - // ]); - // } - - // /** - // * DELETE* - // */ - // public function destroy(CardBalance $order): JsonResponse - // { - // if ($order->user_id != auth()->id()) { - // return response()->json(status: 403); - // } - - // $order->delete(); - - // return response()->json([ - // 'message' => __('Successfully deleted'), - // ]); - // } + return response()->json([ + 'message' => __('Successfully deleted'), + ]); + } } diff --git a/app/Http/Controllers/Api/CardPin/Requests/CardPinUpdateRequest.php b/app/Http/Controllers/Api/CardPin/Requests/CardPinUpdateRequest.php new file mode 100644 index 0000000..6e96b62 --- /dev/null +++ b/app/Http/Controllers/Api/CardPin/Requests/CardPinUpdateRequest.php @@ -0,0 +1,114 @@ +|string> + */ + public function rules(): array + { + return [ + /** + * Card type id (https://online.tbbank.gov.tm/api/base-app-enums) + */ + 'card_type_id' => ['sometimes', 'integer', Rule::exists('card_types', 'id')], + + /** + * Region (https://online.tbbank.gov.tm/api/base-app-enums) + * + * @example ag + */ + 'region' => ['sometimes', 'string', Rule::in(array_keys(RegionRepo::values()))], + + /** + * Branch id (https://online.tbbank.gov.tm/api/branches) + */ + 'branch_id' => ['sometimes', 'integer', Rule::exists('branches', 'id')], + + /** + * Customer name + * + * @example Mahmyt + */ + 'customer_name' => ['sometimes', 'string', 'max:255'], + + /** + * Customer surname + * + * @example Allaberdiyev + */ + 'customer_surname' => ['sometimes', 'string', 'max:255'], + + /** + * Customer patronic name + * + * @example Öwezowiç + */ + 'customer_patronic_name' => ['nullable', 'string', 'max:255'], + + /** + * Date of birth + * + * @example 10.10.2000 + */ + 'born_at' => ['sometimes', 'before_or_equal:today'], + + /** + * Passport serie + * + * @example I-AS + */ + 'passport_serie' => ['sometimes', 'string', Rule::in(PassportRepo::values())], + + /** + * Passport number + * + * @example 100999 + */ + 'passport_id' => ['sometimes', 'numeric', 'digits:6'], + + /** + * Card number + * + * @example 9934 2312 2342 0249 + */ + 'card_number' => ['sometimes', 'string'], + + /** + * Phone number + * + * @example 65999990 + */ + 'phone' => ['sometimes', 'integer', 'between:61000000, 71999999'], + + /** + * Passport (sahypa 1) + */ + 'passport_one' => ['sometimes', 'file', 'max:2048', 'mimes:jpg,png,jpeg'], + + /** + * Pasport (2-3-nji sahypa) + */ + 'passport_two' => ['sometimes', 'file', 'max:2048', 'mimes:jpg,png,jpeg'], + + /** + * Pasport (8-9 sahypa) + */ + 'passport_three' => ['sometimes', 'file', 'max:2048', 'mimes:jpg,png,jpeg'], + + /** + * Pasport (32-nji sahypa) + */ + 'passport_four' => ['sometimes', 'file', 'max:2048', 'mimes:jpg,png,jpeg'], + ]; + } +}