checkSync method

Future<BcnSyncingResponse> checkSync()

Implementation

Future<BcnSyncingResponse> checkSync() async {
  BcnSyncingRequest bcnSyncingRequest;
  BcnSyncingResponse bcnSyncingResponse;

  Map<String, dynamic> mapParams;

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

  try {
    if (this.nodeType == DEMO_NODE || this.nodeType == SHARED_NODE) {
      bcnSyncingResponse = new BcnSyncingResponse();
      bcnSyncingResponse.result = new BcnSyncingResponseResult();
      bcnSyncingResponse.result.syncing = DM_SYNC_SYNCING;
      bcnSyncingResponse.result.currentBlock = DM_SYNC_CURRENT_BLOCK;
      bcnSyncingResponse.result.highestBlock = DM_SYNC_HIGHEST_BLOCK;
    } else {
      if (this.nodeType == PUBLIC_NODE) {
        mapParams = {
          'method': BcnSyncingRequest.METHOD_NAME,
          'params': [],
          'id': 101,
        };
      } else {
        mapParams = {
          'method': BcnSyncingRequest.METHOD_NAME,
          'params': [],
          'id': 101,
          'key': this.keyApp
        };
      }

      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) {
          bcnSyncingResponse = bcnSyncingResponseFromJson(response.text);
        }
      } else {
        bcnSyncingRequest = BcnSyncingRequest.fromJson(mapParams);
        String body = json.encode(bcnSyncingRequest.toJson());
        http.Response responseHttp = await http.post(Uri.parse(this.apiUrl),
            body: body, headers: requestHeaders);
        if (responseHttp.statusCode == 200) {
          bcnSyncingResponse = bcnSyncingResponseFromJson(responseHttp.body);
        }
      }
    }
  } catch (e) {}

  _completer.complete(bcnSyncingResponse);
  return _completer.future;
}