processRequest method

dynamic processRequest(
  1. dynamic requestSource,
  2. dynamic context
)

Implementation

processRequest(requestSource, context) async {
  myLogAll('processRequest');

  Map requestFirst = getMap(requestSource);
  requestFirst.remove(gString);
  List data = [];
  data = processRequestInit(requestFirst, context);
  int seq = requestFirst[gSeq];
  if (!isNull(data)) {
    processRequestData(data, context);
    removeCurrentSeq([], requestFirst, context);
    return;
  }

  _requestListRunning!.add({gSeq: seq});
  dynamic datamodel = this;

  try {
    data = await processRequestThird(requestFirst, context, datamodel);
  } catch (e) {
    rethrow;
  } finally {
    if (!isSS()) {
      removeCurrentSeq([], requestFirst, context);
    }
  }
  if (isNull(data)) {
    myLog('=====================  processRequest : $requestSource');
    var dataRequest = encryptByDES(requestFirst);
    final headers = {
      'contentType':
          'text/html,application/xhtml+xml,application/xml,application/x-www-form-urlencoded',
      'accept-language': 'en-US,en'
    };
    //dynamic url = MyConfig.URL.name + 'smilesmart';
    http.Response response;

    try {
      waitDialog(context);

      Uri uri = Uri.http(MyConfig.URL.name, MyConfig.PROJ.name);

      response =
          // ignore: return_of_invalid_type_from_catch_error
          await httpClient
              .post(uri, headers: headers, body: dataRequest)
              .catchError((error) {
        //requestException(dataRequest, error, context);
        throw (error);
      });

      if (response.statusCode != HttpStatus.ok) {
        requestException(
            dataRequest,
            "server error(${response.statusCode}, ${response.body})",
            context);
        /*throw Exception(getSCurrent(
            "serverwrongcode(${response.statusCode}, ${response.body})"));*/
      }
      Utf8Decoder decode = const Utf8Decoder();

      data = getJsonDecode(decode.convert(response.bodyBytes));
    } catch (e) {
      rethrow;
    } finally {
      waitDialogClose(context);
    }
    //} else if (data[0].toString() == "thirdrequest") {
    //return;
  } else if (data[0] == gCancel) {
    return;
  }
  myLog('===========  requestFirst: $requestFirst');

  processRequestData(data, context);
}