api function

dynamic api()

Implementation

api() {
  return """
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';

import 'constants.dart';

enum ConnectionStatus { loading, error, done }

class Api {
  Dio _dio() {
    var headers = {
      'Content-type': 'application/json',
      'Accept': 'application/json',
      'Authorization': 'Bearer \$apiToken'
    };

    final dio = Dio(BaseOptions(
      headers: headers,
      validateStatus: (statusCode) {
        if (statusCode == null) {
          return false;
        }
        if (statusCode == 422) {
          // your http status code
          return true;
        } else {
          return statusCode >= 200 && statusCode < 300;
        }
      },
    ));

    //if debug mode show logger
    if (kDebugMode) {
      dio.interceptors.add(PrettyDioLogger(
        requestHeader: true,
        requestBody: true,
        responseBody: true,
        compact: false,
      ));
    }
    return dio;
  }

  get(String url,
      {Map<String, dynamic>? params,
      Function(dynamic data)? onSuccess,
      Function(dynamic error)? onError}) {
    _dio().get('\$baseUrl\$url', queryParameters: params).then((response) {
      if (response.statusCode! >= 200 && response.statusCode! < 300) {
        if (onSuccess != null) onSuccess(response.data);
      } else {
        if (onError != null) onError(response.data['message']);
      }
    }).onError((DioError error, stackTrace) {
      if (error.response != null) {
        final message = error.response!.statusMessage;
        if (onError != null) onError(message);
      } else {
        if (onError != null) onError(error.message);
      }
    });
  }

  post(String url, dynamic params,
      {Function(dynamic data)? onSuccess,
      Function(dynamic error)? onError,
      bool isUpload = false}) {
    _dio()
        .post(
      '\$baseUrl\$url',
      data: params,
    )
        .then((response) {
      if (response.statusCode! >= 200 && response.statusCode! < 300) {
        if (onSuccess != null) onSuccess(response.data);
      } else {
        if (onError != null) onError(response.data['message']);
      }
    }).onError((DioError error, stackTrace) {
      if (error.response != null) {
        final message = error.response!.statusMessage;

        if (onError != null) onError(message);
      } else {
        if (onError != null) onError(error.message);
      }
    });
  }

  delete(String url,
      {Map<String, String>? params,
      Function(dynamic data)? onSuccess,
      Function(dynamic error)? onError}) {
    _dio().delete('\$baseUrl\$url').then((response) {
      if (response.statusCode! >= 200 && response.statusCode! < 300) {
        if (onSuccess != null) onSuccess(response.data);
      } else {
        if (onError != null) onError(response.data['message']);
      }
    }).onError((DioError error, stackTrace) {
      if (error.response != null) {
        final message = error.response!.statusMessage;

        if (onError != null) onError(message);
      } else {
        if (onError != null) onError(error.message);
      }
    });
  }
}

""";
}