0 for success return isset($response['code']) && (int) $response['code'] === 0; } /** * Extract error information from response */ public function extractError(array $response): ?array { if ($this->isSuccess($response)) { return null; } return [ 'code' => $response['code'] ?? 'unknown', 'message' => $response['message'] ?? $response['msg'] ?? 'Unknown error', 'data' => $response['data'] ?? null, ]; } /** * Throw exception if response indicates error */ public function validateOrThrow(array $response): void { if (!$this->isSuccess($response)) { $error = $this->extractError($response); throw new ApiException( message: $error['message'], code: 0, previous: null, context: null, apiCode: (string) $error['code'], responseData: $response ); } } }