migrate<T extends Model> static method

Future<bool> migrate<T extends Model>({
  1. required T constructor(
    1. Map<String, dynamic>
    ),
})

Implementation

static Future<bool> migrate<T extends Model>({
  required T Function(Map<String, dynamic>) constructor,
}) async {
  final s3KeyPath = _getS3TableKey<T>();

  if (await _s3client.objectExists(s3KeyPath)) {
    _jsonConstructors[T] = constructor;
    return true;
  }

  if (await _s3client.putString(
    s3KeyPath,
    jsonEncode({}),
    contentType: 'application/json',
    acl: S3Acl.private,
  )) {
    _jsonConstructors[T] = constructor;
    return true;
  }

  return false;
}