summary refs log tree commit diff
path: root/src/Cache.cpp
diff options
context:
space:
mode:
authorDeepBlueV7.X <nicolas.werner@hotmail.de>2021-06-19 20:27:53 +0000
committerGitHub <noreply@github.com>2021-06-19 20:27:53 +0000
commit57a9a1d0e11d594e2677283805af84c1ca825def (patch)
tree12521c7c16051bd3c266e9a150c322c0a45d4701 /src/Cache.cpp
parentMerge pull request #614 from sfc-bhshipman/avatar_event_support (diff)
parentfixup! Allow editing unsent messages (diff)
downloadnheko-57a9a1d0e11d594e2677283805af84c1ca825def.tar.xz
Merge pull request #611 from balsoft/allow-edits-of-pending-messages
Allow editing unsent messages
Diffstat (limited to 'src/Cache.cpp')
-rw-r--r--src/Cache.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/Cache.cpp b/src/Cache.cpp

index 0d75ac51..2178bbfb 100644 --- a/src/Cache.cpp +++ b/src/Cache.cpp
@@ -1681,6 +1681,27 @@ Cache::storeEvent(const std::string &room_id, txn.commit(); } +void +Cache::replaceEvent(const std::string &room_id, + const std::string &event_id, + const mtx::events::collections::TimelineEvent &event) +{ + auto txn = lmdb::txn::begin(env_); + auto eventsDb = getEventsDb(txn, room_id); + auto relationsDb = getRelationsDb(txn, room_id); + auto event_json = mtx::accessors::serialize_event(event.data).dump(); + + { + eventsDb.del(txn, event_id); + eventsDb.put(txn, event_id, event_json); + for (auto relation : mtx::accessors::relations(event.data).relations) { + relationsDb.put(txn, relation.event_id, event_id); + } + } + + txn.commit(); +} + std::vector<std::string> Cache::relatedEvents(const std::string &room_id, const std::string &event_id) {