onCommit method

  1. @override
Future<AlbumOre> onCommit(
  1. Album album,
  2. String path
)
override

Implementation

@override
Future<AlbumOre> onCommit(album, path) async {
  //...data
  late http.Response response;
  path = resolvePath(path);

  x(Map data) => data
    ..['name'] = path
    ..remove(Album.srcKey);

  e(data) => FirestoreCodec.encode('doc*', data);
  final body = json.encode(x(e(album.toJson())));

  AlbumOre exempt(http.Response response) {
    if (response.statusCode == 200) {
      return AlbumOre(album); // successful!
    }
    throw FirestoreException(response); //.*
  }

  //...commit data
  final uri = accessUri.resolve(path);
  response = await client.patch(uri, body: body);
  return exempt(response);
}