getDnaCeremonyIntervals method

Future<DnaCeremonyIntervalsResponse> getDnaCeremonyIntervals()

Implementation

Future<DnaCeremonyIntervalsResponse> getDnaCeremonyIntervals() async {
  DnaCeremonyIntervalsRequest dnaCeremonyIntervalsRequest;
  DnaCeremonyIntervalsResponse dnaCeremonyIntervalsResponse;

  Map<String, dynamic> mapParams;

  Completer<DnaCeremonyIntervalsResponse> _completer =
      new Completer<DnaCeremonyIntervalsResponse>();

  if (this.nodeType == DEMO_NODE || this.nodeType == PUBLIC_NODE) {
    dnaCeremonyIntervalsResponse = new DnaCeremonyIntervalsResponse();
    dnaCeremonyIntervalsResponse.result =
        new DnaCeremonyIntervalsResponseResult();
    dnaCeremonyIntervalsResponse.result.flipLotteryDuration =
        DM_CEREMONY_INTERVALS_FLIP_LOTTERY_DURATION;
    dnaCeremonyIntervalsResponse.result.longSessionDuration =
        DM_CEREMONY_INTERVALS_LONG_SESSION_DURATION;
    dnaCeremonyIntervalsResponse.result.shortSessionDuration =
        DM_CEREMONY_INTERVALS_SHORT_SESSION_DURATION;
  } else {
    if (this.nodeType == PUBLIC_NODE) {
      mapParams = {
        'method': DnaCeremonyIntervalsRequest.METHOD_NAME,
        'params': [],
        'id': 101,
      };
    } else {
      mapParams = {
        'method': DnaCeremonyIntervalsRequest.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;
        }
        var response = await ssh.HttpClientImpl(
            clientFactory: () =>
                ssh.SSHTunneledBaseClient(sshClientStatus.sshClient)).request(
            this.apiUrl,
            method: 'POST',
            data: jsonEncode(mapParams),
            headers: requestHeaders);
        if (response.status == 200) {
          dnaCeremonyIntervalsResponse =
              dnaCeremonyIntervalsResponseFromJson(response.text);
          if (dnaCeremonyIntervalsResponse.result == null) {
            dnaCeremonyIntervalsResponse.result =
                new DnaCeremonyIntervalsResponseResult();
            dnaCeremonyIntervalsResponse.result.flipLotteryDuration =
                DM_CEREMONY_INTERVALS_FLIP_LOTTERY_DURATION;
            dnaCeremonyIntervalsResponse.result.longSessionDuration =
                DM_CEREMONY_INTERVALS_LONG_SESSION_DURATION;
            dnaCeremonyIntervalsResponse.result.shortSessionDuration =
                DM_CEREMONY_INTERVALS_SHORT_SESSION_DURATION;
          }
        }
      } else {
        dnaCeremonyIntervalsRequest =
            DnaCeremonyIntervalsRequest.fromJson(mapParams);
        String body = json.encode(dnaCeremonyIntervalsRequest.toJson());
        http.Response responseHttp = await http.post(Uri.parse(this.apiUrl),
            body: body, headers: requestHeaders);
        if (responseHttp.statusCode == 200) {
          dnaCeremonyIntervalsResponse =
              dnaCeremonyIntervalsResponseFromJson(responseHttp.body);
          if (dnaCeremonyIntervalsResponse.result == null) {
            dnaCeremonyIntervalsResponse.result =
                new DnaCeremonyIntervalsResponseResult();
            dnaCeremonyIntervalsResponse.result.flipLotteryDuration =
                DM_CEREMONY_INTERVALS_FLIP_LOTTERY_DURATION;
            dnaCeremonyIntervalsResponse.result.longSessionDuration =
                DM_CEREMONY_INTERVALS_LONG_SESSION_DURATION;
            dnaCeremonyIntervalsResponse.result.shortSessionDuration =
                DM_CEREMONY_INTERVALS_SHORT_SESSION_DURATION;
          }
        }
      }
    } catch (e) {
      logger.e(e.toString());
    }
  }

  _completer.complete(dnaCeremonyIntervalsResponse);

  return _completer.future;
}