Skip to content

Commit 77ee02f

Browse files
committed
refactor!(media): rename MediaRequest to MediaRequestParameters
Because it's not a request we send to the server; it's some of the request parameters.
1 parent 566a13b commit 77ee02f

File tree

16 files changed

+123
-86
lines changed

16 files changed

+123
-86
lines changed

bindings/matrix-sdk-ffi/src/client.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ use std::{
88
use anyhow::{anyhow, Context as _};
99
use matrix_sdk::{
1010
media::{
11-
MediaFileHandle as SdkMediaFileHandle, MediaFormat, MediaRequest, MediaThumbnailSettings,
11+
MediaFileHandle as SdkMediaFileHandle, MediaFormat, MediaRequestParameters,
12+
MediaThumbnailSettings,
1213
},
1314
oidc::{
1415
registrations::{ClientId, OidcRegistrations},
@@ -442,7 +443,7 @@ impl Client {
442443
.inner
443444
.media()
444445
.get_media_file(
445-
&MediaRequest { source, format: MediaFormat::File },
446+
&MediaRequestParameters { source, format: MediaFormat::File },
446447
filename,
447448
&mime_type,
448449
use_cache,
@@ -721,7 +722,7 @@ impl Client {
721722
Ok(self
722723
.inner
723724
.media()
724-
.get_media_content(&MediaRequest { source, format: MediaFormat::File }, true)
725+
.get_media_content(&MediaRequestParameters { source, format: MediaFormat::File }, true)
725726
.await?)
726727
}
727728

@@ -738,7 +739,7 @@ impl Client {
738739
.inner
739740
.media()
740741
.get_media_content(
741-
&MediaRequest {
742+
&MediaRequestParameters {
742743
source,
743744
format: MediaFormat::Thumbnail(MediaThumbnailSettings::new(
744745
Method::Scale,

crates/matrix-sdk-base/src/event_cache_store/integration_tests.rs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use ruma::{
2020
};
2121

2222
use super::DynEventCacheStore;
23-
use crate::media::{MediaFormat, MediaRequest, MediaThumbnailSettings};
23+
use crate::media::{MediaFormat, MediaRequestParameters, MediaThumbnailSettings};
2424

2525
/// `EventCacheStore` integration tests.
2626
///
@@ -41,9 +41,11 @@ pub trait EventCacheStoreIntegrationTests {
4141
impl EventCacheStoreIntegrationTests for DynEventCacheStore {
4242
async fn test_media_content(&self) {
4343
let uri = mxc_uri!("mxc://localhost/media");
44-
let request_file =
45-
MediaRequest { source: MediaSource::Plain(uri.to_owned()), format: MediaFormat::File };
46-
let request_thumbnail = MediaRequest {
44+
let request_file = MediaRequestParameters {
45+
source: MediaSource::Plain(uri.to_owned()),
46+
format: MediaFormat::File,
47+
};
48+
let request_thumbnail = MediaRequestParameters {
4749
source: MediaSource::Plain(uri.to_owned()),
4850
format: MediaFormat::Thumbnail(MediaThumbnailSettings::new(
4951
Method::Crop,
@@ -53,7 +55,7 @@ impl EventCacheStoreIntegrationTests for DynEventCacheStore {
5355
};
5456

5557
let other_uri = mxc_uri!("mxc://localhost/media-other");
56-
let request_other_file = MediaRequest {
58+
let request_other_file = MediaRequestParameters {
5759
source: MediaSource::Plain(other_uri.to_owned()),
5860
format: MediaFormat::File,
5961
};
@@ -145,8 +147,10 @@ impl EventCacheStoreIntegrationTests for DynEventCacheStore {
145147

146148
async fn test_replace_media_key(&self) {
147149
let uri = mxc_uri!("mxc://sendqueue.local/tr4n-s4ct-10n1-d");
148-
let req =
149-
MediaRequest { source: MediaSource::Plain(uri.to_owned()), format: MediaFormat::File };
150+
let req = MediaRequestParameters {
151+
source: MediaSource::Plain(uri.to_owned()),
152+
format: MediaFormat::File,
153+
};
150154

151155
let content = "hello".as_bytes().to_owned();
152156

@@ -161,7 +165,7 @@ impl EventCacheStoreIntegrationTests for DynEventCacheStore {
161165

162166
// Replacing a media request works.
163167
let new_uri = mxc_uri!("mxc://matrix.org/tr4n-s4ct-10n1-d");
164-
let new_req = MediaRequest {
168+
let new_req = MediaRequestParameters {
165169
source: MediaSource::Plain(new_uri.to_owned()),
166170
format: MediaFormat::File,
167171
};

crates/matrix-sdk-base/src/event_cache_store/memory_store.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use matrix_sdk_common::{
2121
use ruma::{MxcUri, OwnedMxcUri};
2222

2323
use super::{EventCacheStore, EventCacheStoreError, Result};
24-
use crate::media::{MediaRequest, UniqueKey as _};
24+
use crate::media::{MediaRequestParameters, UniqueKey as _};
2525

2626
/// In-memory, non-persistent implementation of the `EventCacheStore`.
2727
///
@@ -66,7 +66,11 @@ impl EventCacheStore for MemoryStore {
6666
Ok(try_take_leased_lock(&self.leases, lease_duration_ms, key, holder))
6767
}
6868

69-
async fn add_media_content(&self, request: &MediaRequest, data: Vec<u8>) -> Result<()> {
69+
async fn add_media_content(
70+
&self,
71+
request: &MediaRequestParameters,
72+
data: Vec<u8>,
73+
) -> Result<()> {
7074
// Avoid duplication. Let's try to remove it first.
7175
self.remove_media_content(request).await?;
7276
// Now, let's add it.
@@ -77,8 +81,8 @@ impl EventCacheStore for MemoryStore {
7781

7882
async fn replace_media_key(
7983
&self,
80-
from: &MediaRequest,
81-
to: &MediaRequest,
84+
from: &MediaRequestParameters,
85+
to: &MediaRequestParameters,
8286
) -> Result<(), Self::Error> {
8387
let expected_key = from.unique_key();
8488

@@ -91,7 +95,7 @@ impl EventCacheStore for MemoryStore {
9195
Ok(())
9296
}
9397

94-
async fn get_media_content(&self, request: &MediaRequest) -> Result<Option<Vec<u8>>> {
98+
async fn get_media_content(&self, request: &MediaRequestParameters) -> Result<Option<Vec<u8>>> {
9599
let expected_key = request.unique_key();
96100

97101
let media = self.media.read().unwrap();
@@ -100,7 +104,7 @@ impl EventCacheStore for MemoryStore {
100104
}))
101105
}
102106

103-
async fn remove_media_content(&self, request: &MediaRequest) -> Result<()> {
107+
async fn remove_media_content(&self, request: &MediaRequestParameters) -> Result<()> {
104108
let expected_key = request.unique_key();
105109

106110
let mut media = self.media.write().unwrap();

crates/matrix-sdk-base/src/event_cache_store/traits.rs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use matrix_sdk_common::AsyncTraitDeps;
1919
use ruma::MxcUri;
2020

2121
use super::EventCacheStoreError;
22-
use crate::media::MediaRequest;
22+
use crate::media::MediaRequestParameters;
2323

2424
/// An abstract trait that can be used to implement different store backends
2525
/// for the event cache of the SDK.
@@ -46,7 +46,7 @@ pub trait EventCacheStore: AsyncTraitDeps {
4646
/// * `content` - The content of the file.
4747
async fn add_media_content(
4848
&self,
49-
request: &MediaRequest,
49+
request: &MediaRequestParameters,
5050
content: Vec<u8>,
5151
) -> Result<(), Self::Error>;
5252

@@ -71,8 +71,8 @@ pub trait EventCacheStore: AsyncTraitDeps {
7171
/// * `to` - The new `MediaRequest` of the file.
7272
async fn replace_media_key(
7373
&self,
74-
from: &MediaRequest,
75-
to: &MediaRequest,
74+
from: &MediaRequestParameters,
75+
to: &MediaRequestParameters,
7676
) -> Result<(), Self::Error>;
7777

7878
/// Get a media file's content out of the media store.
@@ -82,15 +82,18 @@ pub trait EventCacheStore: AsyncTraitDeps {
8282
/// * `request` - The `MediaRequest` of the file.
8383
async fn get_media_content(
8484
&self,
85-
request: &MediaRequest,
85+
request: &MediaRequestParameters,
8686
) -> Result<Option<Vec<u8>>, Self::Error>;
8787

8888
/// Remove a media file's content from the media store.
8989
///
9090
/// # Arguments
9191
///
9292
/// * `request` - The `MediaRequest` of the file.
93-
async fn remove_media_content(&self, request: &MediaRequest) -> Result<(), Self::Error>;
93+
async fn remove_media_content(
94+
&self,
95+
request: &MediaRequestParameters,
96+
) -> Result<(), Self::Error>;
9497

9598
/// Remove all the media files' content associated to an `MxcUri` from the
9699
/// media store.
@@ -127,28 +130,31 @@ impl<T: EventCacheStore> EventCacheStore for EraseEventCacheStoreError<T> {
127130

128131
async fn add_media_content(
129132
&self,
130-
request: &MediaRequest,
133+
request: &MediaRequestParameters,
131134
content: Vec<u8>,
132135
) -> Result<(), Self::Error> {
133136
self.0.add_media_content(request, content).await.map_err(Into::into)
134137
}
135138

136139
async fn replace_media_key(
137140
&self,
138-
from: &MediaRequest,
139-
to: &MediaRequest,
141+
from: &MediaRequestParameters,
142+
to: &MediaRequestParameters,
140143
) -> Result<(), Self::Error> {
141144
self.0.replace_media_key(from, to).await.map_err(Into::into)
142145
}
143146

144147
async fn get_media_content(
145148
&self,
146-
request: &MediaRequest,
149+
request: &MediaRequestParameters,
147150
) -> Result<Option<Vec<u8>>, Self::Error> {
148151
self.0.get_media_content(request).await.map_err(Into::into)
149152
}
150153

151-
async fn remove_media_content(&self, request: &MediaRequest) -> Result<(), Self::Error> {
154+
async fn remove_media_content(
155+
&self,
156+
request: &MediaRequestParameters,
157+
) -> Result<(), Self::Error> {
152158
self.0.remove_media_content(request).await.map_err(Into::into)
153159
}
154160

crates/matrix-sdk-base/src/media.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,17 +97,19 @@ impl UniqueKey for MediaSource {
9797
}
9898
}
9999

100-
/// A request for media data.
100+
/// Parameters for a request for retrieve media data.
101+
///
102+
/// This is used as a key in the media cache too.
101103
#[derive(Clone, Debug, Serialize, Deserialize)]
102-
pub struct MediaRequest {
104+
pub struct MediaRequestParameters {
103105
/// The source of the media file.
104106
pub source: MediaSource,
105107

106108
/// The requested format of the media data.
107109
pub format: MediaFormat,
108110
}
109111

110-
impl MediaRequest {
112+
impl MediaRequestParameters {
111113
/// Get the [`MxcUri`] from `Self`.
112114
pub fn uri(&self) -> &MxcUri {
113115
match &self.source {
@@ -117,7 +119,7 @@ impl MediaRequest {
117119
}
118120
}
119121

120-
impl UniqueKey for MediaRequest {
122+
impl UniqueKey for MediaRequestParameters {
121123
fn unique_key(&self) -> String {
122124
format!("{}{UNIQUE_SEPARATOR}{}", self.source.unique_key(), self.format.unique_key())
123125
}
@@ -213,14 +215,14 @@ mod tests {
213215
fn test_media_request_url() {
214216
let mxc_uri = mxc_uri!("mxc://homeserver/media");
215217

216-
let plain = MediaRequest {
218+
let plain = MediaRequestParameters {
217219
source: MediaSource::Plain(mxc_uri.to_owned()),
218220
format: MediaFormat::File,
219221
};
220222

221223
assert_eq!(plain.uri(), mxc_uri);
222224

223-
let file = MediaRequest {
225+
let file = MediaRequestParameters {
224226
source: MediaSource::Encrypted(Box::new(
225227
serde_json::from_value(json!({
226228
"url": mxc_uri,

crates/matrix-sdk-base/src/store/send_queue.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use ruma::{
2727
};
2828
use serde::{Deserialize, Serialize};
2929

30-
use crate::media::MediaRequest;
30+
use crate::media::MediaRequestParameters;
3131

3232
/// A thin wrapper to serialize a `AnyMessageLikeEventContent`.
3333
#[derive(Clone, Serialize, Deserialize)]
@@ -95,7 +95,7 @@ pub enum QueuedRequestKind {
9595

9696
/// The cache key used to retrieve the media's bytes in the event cache
9797
/// store.
98-
cache_key: MediaRequest,
98+
cache_key: MediaRequestParameters,
9999

100100
/// An optional media source for a thumbnail already uploaded.
101101
thumbnail_source: Option<MediaSource>,
@@ -216,7 +216,7 @@ pub enum DependentQueuedRequestKind {
216216

217217
/// Media request necessary to retrieve the file itself (not the
218218
/// thumbnail).
219-
cache_key: MediaRequest,
219+
cache_key: MediaRequestParameters,
220220

221221
/// To which media transaction id does this upload relate to?
222222
related_to: OwnedTransactionId,

crates/matrix-sdk-sqlite/src/event_cache_store.rs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use async_trait::async_trait;
44
use deadpool_sqlite::{Object as SqliteAsyncConn, Pool as SqlitePool, Runtime};
55
use matrix_sdk_base::{
66
event_cache_store::EventCacheStore,
7-
media::{MediaRequest, UniqueKey},
7+
media::{MediaRequestParameters, UniqueKey},
88
};
99
use matrix_sdk_store_encryption::StoreCipher;
1010
use ruma::MilliSecondsSinceUnixEpoch;
@@ -182,7 +182,11 @@ impl EventCacheStore for SqliteEventCacheStore {
182182
Ok(num_touched == 1)
183183
}
184184

185-
async fn add_media_content(&self, request: &MediaRequest, content: Vec<u8>) -> Result<()> {
185+
async fn add_media_content(
186+
&self,
187+
request: &MediaRequestParameters,
188+
content: Vec<u8>,
189+
) -> Result<()> {
186190
let uri = self.encode_key(keys::MEDIA, request.source.unique_key());
187191
let format = self.encode_key(keys::MEDIA, request.format.unique_key());
188192
let data = self.encode_value(content)?;
@@ -199,8 +203,8 @@ impl EventCacheStore for SqliteEventCacheStore {
199203

200204
async fn replace_media_key(
201205
&self,
202-
from: &MediaRequest,
203-
to: &MediaRequest,
206+
from: &MediaRequestParameters,
207+
to: &MediaRequestParameters,
204208
) -> Result<(), Self::Error> {
205209
let prev_uri = self.encode_key(keys::MEDIA, from.source.unique_key());
206210
let prev_format = self.encode_key(keys::MEDIA, from.format.unique_key());
@@ -219,7 +223,7 @@ impl EventCacheStore for SqliteEventCacheStore {
219223
Ok(())
220224
}
221225

222-
async fn get_media_content(&self, request: &MediaRequest) -> Result<Option<Vec<u8>>> {
226+
async fn get_media_content(&self, request: &MediaRequestParameters) -> Result<Option<Vec<u8>>> {
223227
let uri = self.encode_key(keys::MEDIA, request.source.unique_key());
224228
let format = self.encode_key(keys::MEDIA, request.format.unique_key());
225229

@@ -247,7 +251,7 @@ impl EventCacheStore for SqliteEventCacheStore {
247251
data.map(|v| self.decode_value(&v).map(Into::into)).transpose()
248252
}
249253

250-
async fn remove_media_content(&self, request: &MediaRequest) -> Result<()> {
254+
async fn remove_media_content(&self, request: &MediaRequestParameters) -> Result<()> {
251255
let uri = self.encode_key(keys::MEDIA, request.source.unique_key());
252256
let format = self.encode_key(keys::MEDIA, request.format.unique_key());
253257

@@ -277,7 +281,7 @@ mod tests {
277281
use matrix_sdk_base::{
278282
event_cache_store::{EventCacheStore, EventCacheStoreError},
279283
event_cache_store_integration_tests, event_cache_store_integration_tests_time,
280-
media::{MediaFormat, MediaRequest, MediaThumbnailSettings},
284+
media::{MediaFormat, MediaRequestParameters, MediaThumbnailSettings},
281285
};
282286
use matrix_sdk_test::async_test;
283287
use once_cell::sync::Lazy;
@@ -318,9 +322,11 @@ mod tests {
318322
async fn test_last_access() {
319323
let event_cache_store = get_event_cache_store().await.expect("creating media cache failed");
320324
let uri = mxc_uri!("mxc://localhost/media");
321-
let file_request =
322-
MediaRequest { source: MediaSource::Plain(uri.to_owned()), format: MediaFormat::File };
323-
let thumbnail_request = MediaRequest {
325+
let file_request = MediaRequestParameters {
326+
source: MediaSource::Plain(uri.to_owned()),
327+
format: MediaFormat::File,
328+
};
329+
let thumbnail_request = MediaRequestParameters {
324330
source: MediaSource::Plain(uri.to_owned()),
325331
format: MediaFormat::Thumbnail(MediaThumbnailSettings::new(
326332
Method::Crop,

crates/matrix-sdk/src/account.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
// limitations under the License.
1616

1717
use matrix_sdk_base::{
18-
media::{MediaFormat, MediaRequest},
18+
media::{MediaFormat, MediaRequestParameters},
1919
store::StateStoreExt,
2020
StateStoreDataKey, StateStoreDataValue,
2121
};
@@ -217,7 +217,7 @@ impl Account {
217217
/// ```
218218
pub async fn get_avatar(&self, format: MediaFormat) -> Result<Option<Vec<u8>>> {
219219
if let Some(url) = self.get_avatar_url().await? {
220-
let request = MediaRequest { source: MediaSource::Plain(url), format };
220+
let request = MediaRequestParameters { source: MediaSource::Plain(url), format };
221221
Ok(Some(self.client.media().get_media_content(&request, true).await?))
222222
} else {
223223
Ok(None)

0 commit comments

Comments
 (0)