diff --git a/README.md b/README.md index 96bbb8d..fb76c47 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,5 @@ Jorayew Mammetjan 01/2040 I-AS 379514 25.05.2006ý + +{"idSeria":string,"idNo":string,"cardMaskNumber":string,"expDate":string,"clientType":string,"fromDate":string,"toDate":string,"clientName":string,"depName":string,"cardPan":string,"cardAccountNumber":string,"birthDate":string,"mfo":string,"passOrg":string,"passDate":string,"address":string,"phone":string,"errCode":int,"message":string,"messageRu":string,"messageEn":string,"transactions": array} diff --git a/app/Helpers/helpers.php b/app/Helpers/helpers.php index 02ab046..ac31252 100644 --- a/app/Helpers/helpers.php +++ b/app/Helpers/helpers.php @@ -296,3 +296,33 @@ function view_loan_order_permission_id(): int return Permission::query()->where('name', 'ViewLoanOrders')->first(['id', 'name'])->id; }); } + +function emptyClass(...$arguments): object +{ + return new class($arguments) + { + private array $data = []; + + public function __construct(array $props) + { + foreach ($props as $key => $value) { + $this->data[$key] = $value; + } + } + + public function __get($key) + { + return $this->data[$key] ?? null; + } + + public function __set($key, $value) + { + $this->data[$key] = $value; + } + + public function __isset($key): bool + { + return isset($this->data[$key]); + } + }; +} diff --git a/app/Nova/Resources/Order/Card/CardTransaction/Actions/DownloadCardTransaction.php b/app/Nova/Resources/Order/Card/CardTransaction/Actions/DownloadCardTransaction.php index 33ffc22..aa4b81a 100644 --- a/app/Nova/Resources/Order/Card/CardTransaction/Actions/DownloadCardTransaction.php +++ b/app/Nova/Resources/Order/Card/CardTransaction/Actions/DownloadCardTransaction.php @@ -49,19 +49,14 @@ class DownloadCardTransaction extends Action end_date: $end_date->format('d.m.Y'), ); - $data = json_decode($response); + /** @var ResponseTypes\AzatApiClientInfoAllResponse */ + $data = Str::isJson($response) + ? json_decode($response) + : emptyClass(errCode: 1, message: 'Connection issue to VP'); - // if (! is_array($response)) { - // return ActionResponse::danger('Connection issue'); - // } - - // if ($response['errCode'] != 0) { - // return ActionResponse::danger($response['message']); - // } - - info([ - 'type' => $data, - ]); + if ($data->errCode != 0) { + return ActionResponse::danger($data->message); + } } /** diff --git a/app/Nova/Resources/Order/Card/CardTransaction/Actions/ResponseTypes/AzatClientInfoAllResponse.php b/app/Nova/Resources/Order/Card/CardTransaction/Actions/ResponseTypes/AzatClientInfoAllResponse.php new file mode 100644 index 0000000..e31c9c6 --- /dev/null +++ b/app/Nova/Resources/Order/Card/CardTransaction/Actions/ResponseTypes/AzatClientInfoAllResponse.php @@ -0,0 +1,51 @@ + */ + public array $transactions; +}