buildHttpResponse function

Future<Response> buildHttpResponse(
  1. String endPoint, {
  2. HttpMethod method = HttpMethod.get,
  3. Map? request,
})

Implementation

Future<Response> buildHttpResponse(String endPoint,
    {HttpMethod method = HttpMethod.get, Map? request}) async {
  if (await isNetworkAvailable()) {
    DateTime startApiCall = DateTime.now();
    var headers = buildHeaderTokens();
    Uri url = buildBaseUrl(endPoint);
    //printLogs('Request Before: $request');
    Map<String, dynamic> requestData = {
      "requestData": getEncryptRequest(request)
    };

    printLogs('Request After: $requestData');
    Response response;

    if (method == HttpMethod.post) {
      response =
          await http.post(url, body: jsonEncode(requestData), headers: headers);
    } else if (method == HttpMethod.delete) {
      response = await delete(url, headers: headers);
    } else if (method == HttpMethod.put) {
      response =
          await put(url, body: jsonEncode(requestData), headers: headers);
    } else {
      response = await get(url, headers: headers);
    }

    if (MmUtils.instance!.isPrintLog()) {
      DateTime endApiCall = DateTime.now();
      //printLogs("From Logs");

      apiURLResponseLog(
          url: url.toString(),
          endPoint: endPoint,
          headers: jsonEncode(headers),
          hasRequest: method == HttpMethod.post || method == HttpMethod.put,
          request: jsonEncode(request),
          encryptRequest: getEncryptRequest(request),
          statusCode: response.statusCode.validate(),
          encryptResponse:
              MasterResponseClass.fromJson(jsonDecode(response.body))
                  .requestData!,
          responseBody: getDecryptDataResponse(
              MasterResponseClass.fromJson(jsonDecode(response.body))
                  .requestData!),
          methodType: method.name,
          startTime: startApiCall,
          endTime: endApiCall);
    }

    return response;
  } else {
    throw errorInternetNotAvailable;
  }
}