SchemaMutation.fromJson constructor
Implementation
factory SchemaMutation.fromJson(Map<String, Object?> json) {
final operation = SchemaMutationOperation.values.byName(
json['operation'] as String,
);
switch (operation) {
case SchemaMutationOperation.createTable:
case SchemaMutationOperation.alterTable:
final blueprintJson = json['blueprint'] as Map<String, Object?>;
final blueprint = TableBlueprint.fromJson(blueprintJson);
return SchemaMutation._(operation: operation, blueprint: blueprint);
case SchemaMutationOperation.dropTable:
return SchemaMutation._(
operation: operation,
dropOptions: DropTableOptions.fromJson(
json['drop'] as Map<String, Object?>,
),
);
case SchemaMutationOperation.renameTable:
return SchemaMutation._(
operation: operation,
rename: RenameTableOptions.fromJson(
json['rename'] as Map<String, Object?>,
),
);
case SchemaMutationOperation.rawSql:
return SchemaMutation._(
operation: operation,
sql: json['sql'] as String,
parameters: (json['parameters'] as List?)?.toList() ?? const [],
);
case SchemaMutationOperation.createCollection:
case SchemaMutationOperation.dropCollection:
case SchemaMutationOperation.createIndex:
case SchemaMutationOperation.dropIndex:
case SchemaMutationOperation.modifyValidator:
case SchemaMutationOperation.createDatabase:
case SchemaMutationOperation.dropDatabase:
return SchemaMutation._(
operation: operation,
documentPayload:
(json['payload'] as Map?)?.cast<String, Object?>() ?? const {},
);
}
}