executeVerb method

  1. @override
Future<String> executeVerb(
  1. VerbBuilder builder, {
  2. bool sync = false,
})
override

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 ??= '';
}