genAttributes method
dynamic
genAttributes(
- ModelVisitor visitor,
- String collectionId,
- List<String?> ignoreFields
)
Implementation
genAttributes(
ModelVisitor visitor, String collectionId, List<String?> ignoreFields) {
Map<String, dynamic> fields = visitor.fields;
Map<String, dynamic> initializers = visitor.initializers;
int defaultStringSize = 1024;
fields.forEach((key, value) {
if (ignoreFields.contains(key)) {
return;
}
if (value.endsWith("?")) {
value = value.replaceAll('?', '');
}
switch (value) {
case "String":
databases.createStringAttribute(
databaseId: config.DATABASEID,
collectionId: collectionId,
key: key,
size: defaultStringSize,
xrequired: false);
break;
case "bool":
databases.createBooleanAttribute(
databaseId: config.DATABASEID,
collectionId: collectionId,
key: key,
xrequired: false);
break;
case "DateTime":
databases.createDatetimeAttribute(
databaseId: config.DATABASEID,
collectionId: collectionId,
key: key,
xrequired: false);
break;
case "double":
databases.createFloatAttribute(
databaseId: config.DATABASEID,
collectionId: collectionId,
key: key,
xrequired: false);
break;
case "int":
databases.createIntegerAttribute(
databaseId: config.DATABASEID,
collectionId: collectionId,
key: key,
xrequired: false);
break;
case "List<String>":
List<String> initializer = initializers[key];
databases.createEnumAttribute(
elements: initializer,
databaseId: config.DATABASEID,
collectionId: collectionId,
key: key,
xrequired: false);
break;
case "AwEmail":
databases.createEmailAttribute(
databaseId: config.DATABASEID,
collectionId: collectionId,
key: key,
xrequired: false);
break;
case "AwUrl":
databases.createUrlAttribute(
databaseId: config.DATABASEID,
collectionId: collectionId,
key: key,
xrequired: false);
break;
case "AwIp":
databases.createIpAttribute(
databaseId: config.DATABASEID,
collectionId: collectionId,
key: key,
xrequired: false);
break;
case "Relation-fix":
databases.createRelationshipAttribute(
relatedCollectionId: "",
type: "",
databaseId: config.DATABASEID,
collectionId: collectionId,
key: key);
break;
default:
}
});
}