mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-16 15:21:24 +01:00
use OwnedMxcUri in media service
Not using `MxcData` because it borrows it's fields, and so we wouldn't be able to return an owned `MxcData` from functions that read the db.
This commit is contained in:
parent
e2cba15ed2
commit
7672cc8473
5 changed files with 25 additions and 23 deletions
|
|
@ -159,7 +159,7 @@ pub(crate) async fn create_content_route(
|
|||
services()
|
||||
.media
|
||||
.create(
|
||||
mxc.to_string(),
|
||||
mxc.clone().into(),
|
||||
body.filename
|
||||
.clone()
|
||||
.map(|filename| ContentDisposition {
|
||||
|
|
@ -350,7 +350,7 @@ pub(crate) async fn get_remote_content(
|
|||
services()
|
||||
.media
|
||||
.create(
|
||||
mxc.to_string(),
|
||||
mxc.clone().into(),
|
||||
response.content.content_disposition.as_ref(),
|
||||
response.content.content_type.clone(),
|
||||
&response.content.file,
|
||||
|
|
@ -455,7 +455,7 @@ async fn get_content_route_ruma(
|
|||
..
|
||||
},
|
||||
file,
|
||||
)) = services().media.get(mxc.to_string()).await?
|
||||
)) = services().media.get(mxc.clone().into()).await?
|
||||
{
|
||||
Ok(authenticated_media_client::get_content::v1::Response {
|
||||
file,
|
||||
|
|
@ -581,7 +581,7 @@ async fn get_content_as_filename_route_ruma(
|
|||
..
|
||||
},
|
||||
file,
|
||||
)) = services().media.get(mxc.to_string()).await?
|
||||
)) = services().media.get(mxc.clone().into()).await?
|
||||
{
|
||||
Ok(authenticated_media_client::get_content_as_filename::v1::Response {
|
||||
file,
|
||||
|
|
@ -842,8 +842,10 @@ async fn get_content_thumbnail_route_ruma(
|
|||
..
|
||||
},
|
||||
file,
|
||||
)) =
|
||||
services().media.get_thumbnail(mxc.to_string(), width, height).await?
|
||||
)) = services()
|
||||
.media
|
||||
.get_thumbnail(mxc.clone().into(), width, height)
|
||||
.await?
|
||||
{
|
||||
return Ok(make_response(file, content_type));
|
||||
}
|
||||
|
|
@ -872,7 +874,7 @@ async fn get_content_thumbnail_route_ruma(
|
|||
services()
|
||||
.media
|
||||
.upload_thumbnail(
|
||||
mxc.to_string(),
|
||||
mxc.clone().into(),
|
||||
None,
|
||||
resp.content.content_type.clone(),
|
||||
width,
|
||||
|
|
@ -901,10 +903,8 @@ async fn get_content_thumbnail_route_ruma(
|
|||
..
|
||||
},
|
||||
file,
|
||||
)) = services()
|
||||
.media
|
||||
.get_thumbnail(mxc.to_string(), width, height)
|
||||
.await?
|
||||
)) =
|
||||
services().media.get_thumbnail(mxc.into(), width, height).await?
|
||||
{
|
||||
return Ok(make_response(file, content_type));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2062,7 +2062,7 @@ pub(crate) async fn media_download_route(
|
|||
content_type,
|
||||
},
|
||||
file,
|
||||
)) = services().media.get(mxc.to_string()).await?
|
||||
)) = services().media.get(mxc.into()).await?
|
||||
else {
|
||||
return Err(Error::BadRequest(
|
||||
ErrorKind::NotYetUploaded,
|
||||
|
|
@ -2109,7 +2109,7 @@ pub(crate) async fn media_thumbnail_route(
|
|||
..
|
||||
},
|
||||
file,
|
||||
)) = services().media.get_thumbnail(mxc.to_string(), width, height).await?
|
||||
)) = services().media.get_thumbnail(mxc.into(), width, height).await?
|
||||
else {
|
||||
return Err(Error::BadRequest(
|
||||
ErrorKind::NotYetUploaded,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use ruma::api::client::error::ErrorKind;
|
||||
use ruma::{api::client::error::ErrorKind, OwnedMxcUri};
|
||||
|
||||
use crate::{
|
||||
database::KeyValueDatabase,
|
||||
|
|
@ -88,7 +88,7 @@ impl TryFrom<&MediaFileKey> for MediaFileKeyParts {
|
|||
impl service::media::Data for KeyValueDatabase {
|
||||
fn create_file_metadata(
|
||||
&self,
|
||||
mxc: String,
|
||||
mxc: OwnedMxcUri,
|
||||
width: u32,
|
||||
height: u32,
|
||||
meta: &FileMeta,
|
||||
|
|
@ -121,7 +121,7 @@ impl service::media::Data for KeyValueDatabase {
|
|||
|
||||
fn search_file_metadata(
|
||||
&self,
|
||||
mxc: String,
|
||||
mxc: OwnedMxcUri,
|
||||
width: u32,
|
||||
height: u32,
|
||||
) -> Result<(FileMeta, MediaFileKey)> {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use std::io::Cursor;
|
||||
|
||||
use image::imageops::FilterType;
|
||||
use ruma::http_headers::ContentDisposition;
|
||||
use ruma::{http_headers::ContentDisposition, OwnedMxcUri};
|
||||
use tokio::{
|
||||
fs::File,
|
||||
io::{AsyncReadExt, AsyncWriteExt},
|
||||
|
|
@ -46,7 +46,7 @@ impl Service {
|
|||
#[tracing::instrument(skip(self, file))]
|
||||
pub(crate) async fn create(
|
||||
&self,
|
||||
mxc: String,
|
||||
mxc: OwnedMxcUri,
|
||||
content_disposition: Option<&ContentDisposition>,
|
||||
content_type: Option<String>,
|
||||
file: &[u8],
|
||||
|
|
@ -69,7 +69,7 @@ impl Service {
|
|||
#[tracing::instrument(skip(self, file))]
|
||||
pub(crate) async fn upload_thumbnail(
|
||||
&self,
|
||||
mxc: String,
|
||||
mxc: OwnedMxcUri,
|
||||
content_disposition: Option<String>,
|
||||
content_type: Option<String>,
|
||||
width: u32,
|
||||
|
|
@ -93,7 +93,7 @@ impl Service {
|
|||
#[tracing::instrument(skip(self))]
|
||||
pub(crate) async fn get(
|
||||
&self,
|
||||
mxc: String,
|
||||
mxc: OwnedMxcUri,
|
||||
) -> Result<Option<(FileMeta, Vec<u8>)>> {
|
||||
if let Ok((meta, key)) = self.db.search_file_metadata(mxc, 0, 0) {
|
||||
let path = services().globals.get_media_file(&key);
|
||||
|
|
@ -224,7 +224,7 @@ impl Service {
|
|||
#[tracing::instrument(skip(self))]
|
||||
pub(crate) async fn get_thumbnail(
|
||||
&self,
|
||||
mxc: String,
|
||||
mxc: OwnedMxcUri,
|
||||
width: u32,
|
||||
height: u32,
|
||||
) -> Result<Option<(FileMeta, Vec<u8>)>> {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
use ruma::OwnedMxcUri;
|
||||
|
||||
use super::{FileMeta, MediaFileKey};
|
||||
use crate::Result;
|
||||
|
||||
pub(crate) trait Data: Send + Sync {
|
||||
fn create_file_metadata(
|
||||
&self,
|
||||
mxc: String,
|
||||
mxc: OwnedMxcUri,
|
||||
width: u32,
|
||||
height: u32,
|
||||
meta: &FileMeta,
|
||||
|
|
@ -12,7 +14,7 @@ pub(crate) trait Data: Send + Sync {
|
|||
|
||||
fn search_file_metadata(
|
||||
&self,
|
||||
mxc: String,
|
||||
mxc: OwnedMxcUri,
|
||||
width: u32,
|
||||
height: u32,
|
||||
) -> Result<(FileMeta, MediaFileKey)>;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue