executeVerb method
Executes the command returned by VerbBuilder
build command on a remote secondary server.
Optionally privateKey is passed for verb builders which require authentication.
Implementation
@override
Future<String> executeVerb(VerbBuilder builder, {sync = false}) async {
late var verbResult;
try {
if (builder is UpdateVerbBuilder) {
verbResult = await _update(builder);
} else if (builder is DeleteVerbBuilder) {
verbResult = await _delete(builder);
} else if (builder is LookupVerbBuilder) {
verbResult = await _lookup(builder);
} else if (builder is LLookupVerbBuilder) {
verbResult = await _llookup(builder);
} else if (builder is PLookupVerbBuilder) {
verbResult = await _plookup(builder);
} else if (builder is ScanVerbBuilder) {
verbResult = await _scan(builder);
} else if (builder is StatsVerbBuilder) {
verbResult = await _stats(builder);
} else if (builder is ConfigVerbBuilder) {
verbResult = await _config(builder);
} else if (builder is NotifyVerbBuilder) {
verbResult = await _notify(builder);
} else if (builder is NotifyStatusVerbBuilder) {
verbResult = await _notifyStatus(builder);
} else if (builder is NotifyListVerbBuilder) {
verbResult = await _notifyList(builder);
} else if (builder is NotifyAllVerbBuilder) {
verbResult = await _notifyAll(builder);
}
} on Exception catch (e) {
logger.severe('Error in remote verb execution ${e.toString()}');
var errorCode = AtLookUpExceptionUtil.getErrorCode(e);
return Future.error(AtLookUpException(
errorCode, AtLookUpExceptionUtil.getErrorDescription(errorCode)));
}
if (_isError(verbResult)) {
verbResult = verbResult.replaceAll('error:', '');
var errorCode = verbResult.split('-')[0];
var errorMessage = verbResult.split('-')[1];
return Future.error(AtLookUpException(errorCode, errorMessage));
}
return verbResult ??= '';
}