1
0
Fork 0
mirror of https://gitlab.com/famedly/conduit.git synced 2025-08-06 17:40:59 +00:00
conduit/src/service/media/data.rs

66 lines
1.7 KiB
Rust
Raw Normal View History

use ruma::{OwnedServerName, ServerName, UserId};
use sha2::{digest::Output, Sha256};
2022-09-07 13:25:51 +02:00
use crate::Result;
use super::DbFileMeta;
2022-10-05 15:33:57 +02:00
pub trait Data: Send + Sync {
2025-03-29 13:20:55 +00:00
#[allow(clippy::too_many_arguments)]
2022-10-05 20:34:31 +02:00
fn create_file_metadata(
&self,
sha256_digest: Output<Sha256>,
file_size: u64,
servername: &ServerName,
media_id: &str,
filename: Option<&str>,
content_type: Option<&str>,
2025-03-29 13:20:55 +00:00
user_id: Option<&UserId>,
) -> Result<()>;
fn search_file_metadata(&self, servername: &ServerName, media_id: &str) -> Result<DbFileMeta>;
#[allow(clippy::too_many_arguments)]
fn create_thumbnail_metadata(
&self,
sha256_digest: Output<Sha256>,
file_size: u64,
servername: &ServerName,
media_id: &str,
2022-10-05 20:34:31 +02:00
width: u32,
height: u32,
filename: Option<&str>,
2022-10-05 20:34:31 +02:00
content_type: Option<&str>,
) -> Result<()>;
2022-09-07 13:25:51 +02:00
// Returns the sha256 hash, filename and content_type and whether the media should be accessible via
/// unauthenticated endpoints.
fn search_thumbnail_metadata(
2022-10-05 20:34:31 +02:00
&self,
servername: &ServerName,
media_id: &str,
2022-10-05 20:34:31 +02:00
width: u32,
height: u32,
) -> Result<DbFileMeta>;
fn purge_and_get_hashes(
&self,
media: &[(OwnedServerName, String)],
force_filehash: bool,
) -> Vec<Result<String>>;
fn purge_and_get_hashes_from_user(
&self,
user_id: &UserId,
force_filehash: bool,
after: Option<u64>,
) -> Vec<Result<String>>;
fn purge_and_get_hashes_from_server(
&self,
server_name: &ServerName,
force_filehash: bool,
after: Option<u64>,
) -> Vec<Result<String>>;
2022-09-07 13:25:51 +02:00
}