ApiClient constructor

ApiClient(
  1. AppConfig config
)

Implementation

ApiClient(AppConfig config)
    : _dio = Dio(
        BaseOptions(
          baseUrl: config.baseUrl,
          headers: {
            'Content-Type': 'application/json',
            'Authorization': _getBearerToken(config.token),
          },
          connectTimeout: const Duration(seconds: 30),
          receiveTimeout: const Duration(seconds: 30),
        ),
      ) {
  _dio.interceptors.add(
    InterceptorsWrapper(
      onError: (error, handler) {
        if (error.response != null) {
          final statusCode = error.response!.statusCode;
          final message =
              errorMessageFrom(error.response!.data) ?? 'An error occurred';
          error = DioException(
            requestOptions: error.requestOptions,
            response: error.response,
            type: error.type,
            error: 'Status $statusCode: $message',
          );
        }
        return handler.next(error);
      },
    ),
  );
}