first(); /** @var \App\Nova\Resources\Order\Card\CardTransaction\Actions\ResponseTypes\AzatApiClientInfoAllResponse */ $data = $this->fetchApi($model); if ($data->errCode != 0) { return ActionResponse::danger($data->message); } return Action::modal('modal-response', [ 'title' => __('Card balance'), 'html' => Blade::render( file_get_contents(app_path('Nova/Resources/Order/Card/CardBalance/Views/card-balance.blade.php')), ['data' => $data] ) ]); } /** * Get the fields available on the action. * * @param \Laravel\Nova\Http\Requests\NovaRequest $request * @return array */ public function fields(NovaRequest $request) { return []; } /** * Fetch api * * @param \App\Models\Order\Card\Requisite\CardRequisite $model */ public function fetchApi($model) { $date = today()->format('d.m.Y'); $response = DownloadCardTransaction::make()->fetchApi( passport_serie: $model->passport_serie, passport_id: $model->passport_id, card_number_masked: Str::mask($model->card_number, '*', 6, 6), card_expire_date: $model->card_month.'/'.substr($model->card_year, 2), start_date: $date, end_date: $date, ); return Str::isJson($response) ? json_decode($response) : emptyClass(errCode: 1, message: 'Connection issue to VP'); } }