getBuilder static method
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.atKey.metadata.isPublic =
verbParams[AtConstants.publicScopeParam] == 'public';
builder.atKey.sharedWith =
VerbUtil.formatAtSign(verbParams[AtConstants.forAtSign]);
builder.atKey.sharedBy =
VerbUtil.formatAtSign(verbParams[AtConstants.atSign]);
builder.atKey.key = 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.atKey.metadata.ttl = int.parse(verbParams[AtConstants.ttl]!);
}
if (verbParams[AtConstants.ttb] != null) {
builder.atKey.metadata.ttb = int.parse(verbParams[AtConstants.ttb]!);
}
if (verbParams[AtConstants.ttr] != null) {
builder.atKey.metadata.ttr = int.parse(verbParams[AtConstants.ttr]!);
}
if (verbParams[AtConstants.ccd] != null) {
builder.atKey.metadata.ccd =
_getBoolVerbParams(verbParams[AtConstants.ccd]!);
}
builder.atKey.metadata.dataSignature =
verbParams[AtConstants.publicDataSignature];
if (verbParams[AtConstants.isBinary] != null) {
builder.atKey.metadata.isBinary =
_getBoolVerbParams(verbParams[AtConstants.isBinary]!);
}
if (verbParams[AtConstants.isEncrypted] != null) {
builder.atKey.metadata.isEncrypted =
_getBoolVerbParams(verbParams[AtConstants.isEncrypted]!);
}
builder.atKey.metadata.sharedKeyEnc =
verbParams[AtConstants.sharedKeyEncrypted];
// ignore: deprecated_member_use_from_same_package
builder.atKey.metadata.pubKeyCS =
verbParams[AtConstants.sharedWithPublicKeyCheckSum];
builder.atKey.metadata.sharedKeyStatus =
verbParams[AtConstants.sharedKeyStatus];
builder.atKey.metadata.encoding = verbParams[AtConstants.encoding];
builder.atKey.metadata.encKeyName =
verbParams[AtConstants.encryptingKeyName];
builder.atKey.metadata.encAlgo = verbParams[AtConstants.encryptingAlgo];
builder.atKey.metadata.ivNonce = verbParams[AtConstants.ivOrNonce];
builder.atKey.metadata.skeEncKeyName =
verbParams[AtConstants.sharedKeyEncryptedEncryptingKeyName];
builder.atKey.metadata.skeEncAlgo =
verbParams[AtConstants.sharedKeyEncryptedEncryptingAlgo];
if (verbParams[AtConstants.sharedWithPublicKeyHash] != null &&
verbParams[AtConstants.sharedWithPublicKeyHashingAlgo] != null) {
builder.atKey.metadata.pubKeyHash = PublicKeyHash(
verbParams[AtConstants.sharedWithPublicKeyHash]!,
verbParams[AtConstants.sharedWithPublicKeyHashingAlgo]!);
}
builder.value = verbParams[AtConstants.value];
return builder;
}