summaryrefslogtreecommitdiff
path: root/src/database/key_value/rooms/outlier.rs
diff options
context:
space:
mode:
authorTimo Kösters <timo@koesters.xyz>2022-07-10 16:28:43 +0200
committerNyaaori <+@nyaaori.cat>2022-10-10 10:46:39 +0200
commitb0029c49b917ccecc06c475db709aeef4671256c (patch)
treea57bf1a87717ca86d76dbf366fc52033611c17fe /src/database/key_value/rooms/outlier.rs
parent91ad250177f5d9c698fc31248ff20447d22a979d (diff)
downloadconduit-b0029c49b917ccecc06c475db709aeef4671256c.zip
refactor: work on search
Diffstat (limited to 'src/database/key_value/rooms/outlier.rs')
-rw-r--r--src/database/key_value/rooms/outlier.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/database/key_value/rooms/outlier.rs b/src/database/key_value/rooms/outlier.rs
new file mode 100644
index 0000000..c979d25
--- /dev/null
+++ b/src/database/key_value/rooms/outlier.rs
@@ -0,0 +1,24 @@
+impl service::room::outlier::Data for KeyValueDatabase {
+ fn get_outlier_pdu_json(&self, event_id: &EventId) -> Result<Option<CanonicalJsonObject>> {
+ self.eventid_outlierpdu
+ .get(event_id.as_bytes())?
+ .map_or(Ok(None), |pdu| {
+ serde_json::from_slice(&pdu).map_err(|_| Error::bad_database("Invalid PDU in db."))
+ })
+ }
+
+ fn get_outlier_pdu(&self, event_id: &EventId) -> Result<Option<PduEvent>> {
+ self.eventid_outlierpdu
+ .get(event_id.as_bytes())?
+ .map_or(Ok(None), |pdu| {
+ serde_json::from_slice(&pdu).map_err(|_| Error::bad_database("Invalid PDU in db."))
+ })
+ }
+
+ fn add_pdu_outlier(&self, event_id: &EventId, pdu: &CanonicalJsonObject) -> Result<()> {
+ self.eventid_outlierpdu.insert(
+ event_id.as_bytes(),
+ &serde_json::to_vec(&pdu).expect("CanonicalJsonObject is valid"),
+ )
+ }
+}