getPrograms($level); $programs = array_merge($programs, $data->rows); } foreach ($programs as $program) { $programsUuid[] = $program->uuid; } return $programsUuid; } public function getPrograms(int $edu_level) : object { $data = $this->callAPI("https://db-nica.ru/api/v1/programs?filter_edu_level=$edu_level&perPage=200", config('services.vicon.token')); return $data; } public function getProgram(string $uuid) : object { $data = $this->callAPI("https://db-nica.ru/api/v1/program/$uuid", config('services.vicon.token')); return $data; } private function callAPI(string $endpoint, string $token = null): object { try { $response = Http::withToken($token)->get($endpoint); $data = $response->object(); // Проверяем наличие сообщения об ошибке в ответе if (isset($data->message)) { throw new \Exception($data->message); } return $data; } catch (\Exception $e) { Log::channel('app')->error('API call failed', ['error' => $e->getMessage()]); throw $e; // Перебрасываем исключение } } }