makeRequest method

Future<Response> makeRequest(
  1. IsolateModel isolateModel
)

Implementation

Future<Response> makeRequest(IsolateModel isolateModel) async {
  if (client == null) client = http.Client();

  Crypto crypto = Crypto(config.secretKey, config.publicKey);
  String requestMessage = _prepareRequestMessage(crypto, isolateModel);

  if (isolateModel.timeLimit == null)
    isolateModel.timeLimit = config.defaultTimeout;

  http.Response? response = isolateModel.request.method == Method.POST
      ? await _post(isolateModel.url ?? config.url,
          isolateModel.requestParamName, requestMessage,
          encoding: isolateModel.encoding,
          headers: isolateModel.headers,
          timeLimit: isolateModel.timeLimit,
          onTimeOut: isolateModel.onTimeout,
          isPrivate: isolateModel.isPrivate)
      : await _get(isolateModel.url ?? config.url,
          isolateModel.requestParamName, requestMessage,
          headers: isolateModel.headers,
          timeLimit: isolateModel.timeLimit,
          onTimeOut: isolateModel.onTimeout);

  if (response != null) {
    if (response.statusCode == 200) {
      // OK
      var responseMessage;
      if ((isolateModel.encrypt ?? false) || (config.encrypt)) {
        responseMessage = response.body.replaceAll(' ', '');
      } else {
        responseMessage = response.body;
      }
      _print('raw response : ' + responseMessage);

      responseMessage = _decrypt(crypto, isolateModel, responseMessage);

      try {
        var jsonResponse = convert.jsonDecode(responseMessage);
        _print('json decoded : ' + jsonResponse.toString());
        final r = Response(
          response.body,
          response.statusCode,
          result: jsonResponse,
          state: ResponseState.SUCCESS,
        );
        return r;
      } catch (e) {
        _print('json decoded exception : ' + e.toString());
        final r = Response(
          response.body,
          response.statusCode,
          result: null,
          state: ResponseState.UNEXPECTED,
        );
        return r;
      }
    } else {
      // error
      _print(response.statusCode.toString() + ' ' + response.body);
      final r = Response(response.body, response.statusCode,
          result: null, state: ResponseState.ERROR);
      return r;
    }
  } else {
    _print('http response is null!');
    final r = Response('http response is null!', -1,
        result: null, state: ResponseState.ERROR);
    return r;
  }
  // if (await isConnected())  else {
  //   return Response('Check your network connection!', -1,
  //       result: null, state: ResponseState.NETWORK_CONNECTION);
  // }
}