checkSync method
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;
}