genAttributes method

dynamic genAttributes(
  1. ModelVisitor visitor,
  2. String collectionId,
  3. 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:
    }
  });
}