apiDelete function

dynamic apiDelete(
  1. String route, {
  2. dynamic data,
  3. String? token,
  4. dynamic context,
  5. bool showSuccess = false,
  6. bool showError = false,
  7. String? successMessage,
  8. String? errorMessage,
})

Implementation

apiDelete(
  String route, {
  data,
  String? token,
  context,
  bool showSuccess = false,
  bool showError = false,
  String? successMessage,
  String? errorMessage,
}) async {
  final String response = await rootBundle.loadString('env.json');
  final jsonFile = await json.decode(response);

  String baseUrl = await BaissApi.getBaseUrl();
  var dio = Dio();

  try {
    dio.options.connectTimeout = 10000;
    dio.options.receiveTimeout = 10000;
    dio.options.headers['content-Type'] = 'application/json';

    if (token != null) {
      dio.options.headers['Authorization'] =
          '${jsonFile["API_TOKEN_TYPE"] ?? "Bearer"} $token';
    }

    if (!jsonFile['APP_PROD_ENV']) {
      print(
          "............................... Deleting data to : $baseUrl$route");
    }

    final result = await dio.post(baseUrl + route,
        data: data, options: Options(method: "Post"));

    if (!jsonFile['APP_PROD_ENV']) {
      print(
          "............................... Data delete to : $baseUrl$route successfuly");
    }

    if (context != null && showSuccess) {
      ScaffoldMessenger.of(context).showSnackBar(SnackBar(
          duration: const Duration(seconds: 2),
          backgroundColor: Colors.green,
          content: Text(
            successMessage ?? 'Effectué avec success 👌🏽',
            textAlign: TextAlign.center,
          )));
    }

    return {
      'data': result,
      'status': result.statusCode,
    };
  } catch (e) {
    if (e is DioError) {
      if (!jsonFile['APP_PROD_ENV']) {
        print(
            "............................... ${e.message} where posting data to : $baseUrl$route");
      }

      if (context != null && showError) {
        ScaffoldMessenger.of(context).showSnackBar(SnackBar(
            duration: const Duration(seconds: 2),
            backgroundColor: Colors.red,
            content: Text(
              errorMessage ?? "Une erreur est suevenue !!",
              textAlign: TextAlign.center,
            )));
      }

      return {
        'data': e,
        'status': e.response!.statusCode,
        'error': e.response,
      };
    }

    return {
      'data': e,
      'status': '',
      'error': e.toString(),
    };
  }
}