ApiHandlerDio constructor

ApiHandlerDio({
  1. required String baseUrl,
  2. String authToken = '',
})

Implementation

ApiHandlerDio({
  required this.baseUrl,
  this.authToken = '',
}) {
  _dio = Dio(
    BaseOptions(
      baseUrl: baseUrl,
      connectTimeout: const Duration(seconds: 20),
      receiveTimeout: const Duration(seconds: 20),
      sendTimeout: const Duration(seconds: 20),
      headers: {
        'Content-Type': 'application/json',
        if (authToken.isNotEmpty)
          'Authorization': 'Bearer $authToken',
      },
    ),
  );

  // Ignore SSL certificate (Development only)
  if (!kIsWeb) {
    (_dio.httpClientAdapter as IOHttpClientAdapter).createHttpClient = () {
      final client = HttpClient();
      client.badCertificateCallback =
          (X509Certificate cert, String host, int port) => true;
      return client;
    };
  }

  if (kDebugMode) {
    _dio.interceptors.add(
      LogInterceptor(
        request: true,
        requestBody: true,
        responseBody: true,
        requestHeader: true,
      ),
    );
  }
}