1
0
Fork 0
mirror of https://forgejo.ellis.link/continuwuation/continuwuity.git synced 2025-07-28 18:58:30 +00:00
continuwuity/src/service/key_backups/data.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

48 lines
1.7 KiB
Rust
Raw Normal View History

2022-09-07 13:25:51 +02:00
use std::collections::BTreeMap;
2021-06-08 18:10:00 +02:00
2022-10-05 20:34:31 +02:00
use ruma::{
api::client::backup::{BackupAlgorithm, KeyBackupData, RoomKeyBackup},
serde::Raw,
2022-10-09 17:25:06 +02:00
OwnedRoomId, RoomId, UserId,
2022-10-05 20:34:31 +02:00
};
2022-09-07 13:25:51 +02:00
use crate::Result;
pub trait Data: Send + Sync {
2021-12-22 19:41:33 +01:00
fn create_backup(&self, user_id: &UserId, backup_metadata: &Raw<BackupAlgorithm>) -> Result<String>;
2022-09-07 13:25:51 +02:00
fn delete_backup(&self, user_id: &UserId, version: &str) -> Result<()>;
2021-12-22 19:41:33 +01:00
fn update_backup(&self, user_id: &UserId, version: &str, backup_metadata: &Raw<BackupAlgorithm>) -> Result<String>;
2022-09-07 13:25:51 +02:00
fn get_latest_backup_version(&self, user_id: &UserId) -> Result<Option<String>>;
2022-10-05 20:34:31 +02:00
fn get_latest_backup(&self, user_id: &UserId) -> Result<Option<(String, Raw<BackupAlgorithm>)>>;
2022-10-05 20:34:31 +02:00
fn get_backup(&self, user_id: &UserId, version: &str) -> Result<Option<Raw<BackupAlgorithm>>>;
2022-09-07 13:25:51 +02:00
fn add_key(
2021-12-22 19:41:33 +01:00
&self, user_id: &UserId, version: &str, room_id: &RoomId, session_id: &str, key_data: &Raw<KeyBackupData>,
2022-09-07 13:25:51 +02:00
) -> Result<()>;
2022-09-07 13:25:51 +02:00
fn count_keys(&self, user_id: &UserId, version: &str) -> Result<usize>;
2022-09-07 13:25:51 +02:00
fn get_etag(&self, user_id: &UserId, version: &str) -> Result<String>;
2022-10-09 17:25:06 +02:00
fn get_all(&self, user_id: &UserId, version: &str) -> Result<BTreeMap<OwnedRoomId, RoomKeyBackup>>;
2022-09-07 13:25:51 +02:00
fn get_room(
&self, user_id: &UserId, version: &str, room_id: &RoomId,
2022-09-07 13:25:51 +02:00
) -> Result<BTreeMap<String, Raw<KeyBackupData>>>;
2022-09-07 13:25:51 +02:00
fn get_session(
&self, user_id: &UserId, version: &str, room_id: &RoomId, session_id: &str,
2022-09-07 13:25:51 +02:00
) -> Result<Option<Raw<KeyBackupData>>>;
2022-09-07 13:25:51 +02:00
fn delete_all_keys(&self, user_id: &UserId, version: &str) -> Result<()>;
2022-10-05 20:34:31 +02:00
fn delete_room_keys(&self, user_id: &UserId, version: &str, room_id: &RoomId) -> Result<()>;
2022-09-07 13:25:51 +02:00
fn delete_room_key(&self, user_id: &UserId, version: &str, room_id: &RoomId, session_id: &str) -> Result<()>;
2020-06-16 12:11:38 +02:00
}