getBuilder static method

UpdateVerbBuilder? getBuilder(
  1. String command
)

Implementation

static UpdateVerbBuilder? getBuilder(String command) {
  if (command != command.trim()) {
    throw IllegalArgumentException(
        'Commands may not have leading or trailing whitespace');
  }
  var builder = UpdateVerbBuilder();
  HashMap<String, String?>? verbParams;
  if (command.contains(AtConstants.updateMeta)) {
    verbParams = VerbUtil.getVerbParam(VerbSyntax.update_meta, command);
    builder.operation = AtConstants.updateMeta;
  } else {
    verbParams = VerbUtil.getVerbParam(VerbSyntax.update, command);
  }
  if (verbParams == null) {
    return null;
  }
  builder.isPublic = verbParams[AtConstants.publicScopeParam] == 'public';
  builder.sharedWith =
      VerbUtil.formatAtSign(verbParams[AtConstants.forAtSign]);
  builder.sharedBy = VerbUtil.formatAtSign(verbParams[AtConstants.atSign]);
  builder.atKey = verbParams[AtConstants.atKey];
  builder.value = verbParams[AtConstants.atValue];
  if (builder.value is String) {
    builder.value = VerbUtil.replaceNewline(builder.value);
  }
  if (verbParams[AtConstants.ttl] != null) {
    builder.ttl = int.parse(verbParams[AtConstants.ttl]!);
  }
  if (verbParams[AtConstants.ttb] != null) {
    builder.ttb = int.parse(verbParams[AtConstants.ttb]!);
  }
  if (verbParams[AtConstants.ttr] != null) {
    builder.ttr = int.parse(verbParams[AtConstants.ttr]!);
  }
  if (verbParams[AtConstants.ccd] != null) {
    builder.ccd = _getBoolVerbParams(verbParams[AtConstants.ccd]!);
  }

  builder.dataSignature = verbParams[AtConstants.publicDataSignature];

  if (verbParams[AtConstants.isBinary] != null) {
    builder.isBinary = _getBoolVerbParams(verbParams[AtConstants.isBinary]!);
  }
  if (verbParams[AtConstants.isEncrypted] != null) {
    builder.isEncrypted =
        _getBoolVerbParams(verbParams[AtConstants.isEncrypted]!);
  }

  builder.sharedKeyEncrypted = verbParams[AtConstants.sharedKeyEncrypted];
  builder.pubKeyChecksum =
      verbParams[AtConstants.sharedWithPublicKeyCheckSum];
  builder.sharedKeyStatus = verbParams[AtConstants.sharedKeyStatus];
  builder.encoding = verbParams[AtConstants.encoding];
  builder.encKeyName = verbParams[AtConstants.encryptingKeyName];
  builder.encAlgo = verbParams[AtConstants.encryptingAlgo];
  builder.ivNonce = verbParams[AtConstants.ivOrNonce];
  builder.skeEncKeyName =
      verbParams[AtConstants.sharedKeyEncryptedEncryptingKeyName];
  builder.skeEncAlgo =
      verbParams[AtConstants.sharedKeyEncryptedEncryptingAlgo];

  builder.value = verbParams[AtConstants.value];

  return builder;
}