saveEventIfAbsent method
Stores event only when its id is not already present.
Returns true when the event was inserted and false when an event with
the same id already existed. Existing payloads must never be overwritten.
Implementation
@override
Future<bool> saveEventIfAbsent(Nip01Event event) async {
await dbRdy;
return _objectBox.store.runInTransaction(TxMode.write, () {
final eventBox = _objectBox.store.box<DbNip01Event>();
final query =
eventBox.query(DbNip01Event_.nostrId.equals(event.id)).build();
try {
if (query.findFirst() != null) {
return false;
}
eventBox.put(DbNip01Event.fromNdk(event), mode: PutMode.insert);
return true;
} finally {
query.close();
}
});
}