baseUrl = env('EXTERNAL_API_URL', 'http://localhost:8000/api'); } /** * Make a GET request to the API */ public function fetch($endpoint, array $params = []) { try { $response = Http::withHeaders($this->getHeaders()) ->get($this->baseUrl . $endpoint, $params); if ($response->successful()) { return [ 'success' => true, 'data' => $response->json()['data'] ?? $response->json(), 'message' => 'Data fetched successfully' ]; } return [ 'success' => false, 'message' => $response->json()['message'] ?? 'Failed to fetch data', 'errors' => $response->json()['errors'] ?? [] ]; } catch (Exception $e) { return [ 'success' => false, 'message' => 'API service is unavailable', 'errors' => [$e->getMessage()] ]; } } /** * Make a POST request to the API */ public function submit($endpoint, array $data = []) { try { $response = Http::withHeaders($this->getHeaders()) ->post($this->baseUrl . $endpoint, $data); if ($response->successful()) { return [ 'success' => true, 'data' => $response->json()['data'] ?? $response->json(), 'message' => 'Data submitted successfully' ]; } return [ 'success' => false, 'message' => $response->json()['message'] ?? 'Failed to submit data', 'errors' => $response->json()['errors'] ?? [] ]; } catch (Exception $e) { return [ 'success' => false, 'message' => 'API service is unavailable', 'errors' => [$e->getMessage()] ]; } } /** * Get the headers for API requests */ protected function getHeaders(): array { return [ 'Accept' => 'application/json', 'Content-Type' => 'application/json', 'Authorization' => 'Bearer ' . session('api_token'), ]; } }