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);

    dynamic requestData;

    if (MmUtils.instance!.isEncryptData()) {
      requestData = {"requestData": getEncryptRequest(request)};
    } else {
      requestData = request;
    }

    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();

      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: (MmUtils.instance!.isEncryptData())
              ? 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;
  }
}