buildHttpResponse function

Future<Response> buildHttpResponse(
  1. String endPoint,
  2. {HttpMethod method = HttpMethod.GET,
  3. Map? request,
  4. String? flutterWaveSecretKey,
  5. String? stripeKeyPayment,
  6. bool isStripePayment = false,
  7. bool isFlutterWave = false,
  8. bool isSadadPayment = false,
  9. String? sadadToken}
)

Implementation

Future<Response> buildHttpResponse(
  String endPoint, {
  HttpMethod method = HttpMethod.GET,
  Map? request,
  String? flutterWaveSecretKey,
  String? stripeKeyPayment,
  bool isStripePayment = false,
  bool isFlutterWave = false,
  bool isSadadPayment = false,
  String? sadadToken,
}) async {
  if (await isNetworkAvailable()) {
    var headers = buildHeaderTokens(
      isStripePayment: isStripePayment,
      flutterWaveSecretKey: flutterWaveSecretKey,
      stripeKeyPayment: stripeKeyPayment,
      isFlutterWave: isFlutterWave,
      isSadadPayment: isSadadPayment,
      sadadToken: sadadToken,
    );
    Uri url = buildBaseUrl(endPoint);
    log(url);

    Response response;

    if (method == HttpMethod.POST) {
      log('Request: ${jsonEncode(request)}');
      response = await http.post(
        url,
        body: jsonEncode(request),
        headers: headers,
        encoding: isStripePayment ? Encoding.getByName("utf-8") : null,
      );
    } else if (method == HttpMethod.DELETE) {
      response = await delete(url, headers: headers);
    } else if (method == HttpMethod.PUT) {
      response = await put(url, body: jsonEncode(request), headers: headers);
    } else {
      response = await get(url, headers: headers);
    }

    log('Response (${method.name}) ${response.statusCode}: ${response.body}');

    apiPrint(
      url: url.toString(),
      endPoint: endPoint,
      headers: jsonEncode(headers),
      hasRequest: method == HttpMethodType.POST || method == HttpMethodType.PUT,
      request: jsonEncode(request),
      statusCode: response.statusCode,
      responseBody: response.body,
      methodtype: method.name,
    );

    return response;
  } else {
    throw errorInternetNotAvailable;
  }
}