ApiClient constructor

ApiClient({
  1. String? baseUrl,
})

Implementation

factory ApiClient({String? baseUrl}) {
  var logger = Logger(
    filter: MyFilter(),
    printer: PrettyPrinter(
      lineLength: 0,
      methodCount: 0,
      errorMethodCount: 0,
      noBoxingByDefault: true,
    ),
    output: null,
  );
  final storage = GetStorage();
  var jwt = storage.read("ACCESS_TOKEN");
  Dio dio = Dio();
  dio.options = BaseOptions(
    receiveTimeout: const Duration(seconds: 200),
    connectTimeout: const Duration(seconds: 200),
    baseUrl: ApiConstant.baseUrl,
    followRedirects: true,
  );
  dio.options.headers["Content-Type"] = "application/json";
  dio.options.headers["Accept"] = "*/*";
  dio.options.headers["X-User-Token"] = jwt;
  dio.options.headers["X-Request-ID"] = "tedhsjdh";
  // dio.options.headers["X-UserId"] = storage.read("XUSER_ID");
  dio.interceptors.add(
    LogInterceptor(
      request: true,
      requestBody: true,
      requestHeader: true,
      responseBody: true,
      responseHeader: true,
      error: true,
      logPrint: (object) {
        logger.d(object);
        // log(object.toString());
        // print(object.toString());
      },
    ),
  );
  dio.interceptors.add(
    InterceptorsWrapper(
      onRequest: (options, handler) {
        return handler.next(options);
      },
      onResponse: (response, handler) async {
        log(response.data.toString());
        return handler.next(response);
      },
      onError: (DioException e, handler) {
        return handler.next(e);
      },
    ),
  );
  return _ApiClient(dio, baseUrl: baseUrl);
}