getWStatusGetResponse method

Future<String> getWStatusGetResponse()

Implementation

Future<String> getWStatusGetResponse() async {
  DnaIdentityRequest dnaIdentityRequest;

  Map<String, dynamic> mapParams;
  Completer<String> _completer = new Completer<String>();

  if (this.nodeType == DEMO_NODE) {
    _completer.complete("true");
    return _completer.future;
  }

  mapParams = {
    'method': DnaIdentityRequest.METHOD_NAME,
    'params': [],
    'id': 101,
    'key': this.keyApp
  };

  try {
    if (this.nodeType == NORMAL_VPS_NODE) {
      SSHClientStatus sshClientStatus;
      sshClientStatus = await VpsUtil().connectVps(this.apiUrl, keyApp);
      if (sshClientStatus.sshClientStatus) {
        sshClient = sshClientStatus.sshClient;
      } else {
        _completer.complete(sshClientStatus.sshClientStatusMsg);
        return _completer.future;
      }

      var response = await ssh.HttpClientImpl(
          clientFactory: () =>
              ssh.SSHTunneledBaseClient(sshClientStatus.sshClient)).request(
          this.apiUrl,
          method: 'POST',
          data: jsonEncode(mapParams),
          headers: requestHeaders);
      if (response.status == 200) {
        DnaIdentityResponse dnaIdentityResponse =
            dnaIdentityResponseFromJson(response.text);
        if (dnaIdentityResponse.result == null) {
          if (dnaIdentityResponse.error == null) {
            _completer.complete(response.text);
          } else {
            _completer.complete(dnaIdentityResponse.error.message);
          }
        } else {
          _completer.complete("true");
        }
      }
    } else {
      dnaIdentityRequest = DnaIdentityRequest.fromJson(mapParams);
      String body = json.encode(dnaIdentityRequest.toJson());
      http.Response responseHttp = await http
          .post(Uri.parse(this.apiUrl), body: body, headers: requestHeaders)
          .timeout(Duration(seconds: 2));
      if (responseHttp.statusCode == 200) {
        DnaIdentityResponse dnaIdentityResponse =
            dnaIdentityResponseFromJson(responseHttp.body);
        if (dnaIdentityResponse.result == null) {
          if (dnaIdentityResponse.error == null) {
            _completer.complete(responseHttp.body);
          } else {
            _completer.complete(dnaIdentityResponse.error.message);
          }
        } else {
          _completer.complete("true");
        }
      }
    }
  } catch (e) {
    _completer.complete(e.toString());
  }

  return _completer.future;
}