saveMetadata method

  1. @override
Future<void> saveMetadata(
  1. Metadata metadata
)
override

Implementation

@override
Future<void> saveMetadata(Metadata metadata) async {
  await dbRdy;
  final metadataBox = _objectBox.store.box<DbMetadata>();
  final existingMetadatas = metadataBox
      .query(DbMetadata_.pubKey.equals(metadata.pubKey))
      .order(DbMetadata_.updatedAt, flags: Order.descending)
      .build()
      .find();
  if (existingMetadatas.length > 1) {
    metadataBox.removeMany(existingMetadatas.map((e) => e.dbId).toList());
  }
  if (existingMetadatas.isNotEmpty &&
      metadata.updatedAt! < existingMetadatas[0].updatedAt!) {
    return;
  }
  metadataBox.put(DbMetadata.fromNdk(metadata));
}