From 405967fcea4d4d001ff57981b4815e77297a6931 Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Tue, 8 Jul 2025 16:33:51 +0500 Subject: [PATCH] wip --- .../Api/CardBalance/CardBalanceController.php | 53 +++++++++++++++++++ routes/api.php | 1 + 2 files changed, 54 insertions(+) diff --git a/app/Http/Controllers/Api/CardBalance/CardBalanceController.php b/app/Http/Controllers/Api/CardBalance/CardBalanceController.php index 7e29aa4..a9d9314 100644 --- a/app/Http/Controllers/Api/CardBalance/CardBalanceController.php +++ b/app/Http/Controllers/Api/CardBalance/CardBalanceController.php @@ -173,4 +173,57 @@ class CardBalanceController extends Controller 'message' => __('Successfully deleted'), ]); } + + /** + * Quick card balance check + */ + public function quickCheck(Request $request): JsonResponse + { + $request->validate([ + /** + * @example I-AS + */ + 'passport_serie' => ['sometimes', Rule::in(array_keys(PassportRepo::values()))], + + /** + * @example 379514 + */ + 'passport_id' => ['sometimes', 'numeric', 'digits:6'], + + /** + * @example 9934612100000243 + */ + 'card_number' => ['sometimes', 'digits:16'], + + /** + * @example 12 + */ + 'card_month' => ['sometimes', Rule::in(array_keys(DateHelperRepository::staticNumberMonths()))], + + /** + * @example 2049 + */ + 'card_year' => ['sometimes', Rule::in(array_keys(DateHelperRepository::staticNumberYears()))], + ]); + + $response = DownloadCardBalance::make()->fetchApi( + passport_serie: $request->passport_serie, + passport_id: $request->passport_id, + card_masked: Str::mask($request->card_number, '*', 6, 6), + card_expire_date: $request->card_month.'/'.substr($request->card_year, 2), + ); + + if ($response->errCode != 0) { + return response()->json([ + 'status' => false, + 'message' => $response->message, + 'url' => '', + ]); + } + + return response()->json([ + 'status' => true, + 'data' => $response, + ]); + } } diff --git a/routes/api.php b/routes/api.php index f9750ef..8b9518c 100644 --- a/routes/api.php +++ b/routes/api.php @@ -124,6 +124,7 @@ Route::middleware(['auth:sanctum', 'not_banned'])->group(function () { Route::delete('card-requisites/{order}', [CardRequisiteController::class, 'destroy']); // Card balances... [tested fully] + Route::get('card-balance-quick-check', [CardBalanceController::class, 'quickCheck']); Route::get('card-balances', [CardBalanceController::class, 'index']); Route::get('card-balances/{order}', [CardBalanceController::class, 'show']); Route::get('card-balances-download/{order}', [CardBalanceController::class, 'download']);