@@ -291,6 +291,20 @@ impl SendQueue {
291
291
}
292
292
}
293
293
294
+ /// Metadata about a thumbnail needed when pushing media uploads to the send
295
+ /// queue.
296
+ #[ derive( Clone , Debug ) ]
297
+ struct QueueThumbnailInfo {
298
+ /// Metadata about the thumbnail needed when finishing a media upload.
299
+ finish_upload_thumbnail_info : FinishUploadThumbnailInfo ,
300
+
301
+ /// The parameters for the request to retrieve the thumbnail data.
302
+ media_request_parameters : MediaRequestParameters ,
303
+
304
+ /// The thumbnail's mime type.
305
+ content_type : Mime ,
306
+ }
307
+
294
308
/// A specific room's send queue ran into an error, and it has disabled itself.
295
309
#[ derive( Clone , Debug ) ]
296
310
pub struct SendQueueRoomError {
@@ -1214,7 +1228,7 @@ impl QueueStorage {
1214
1228
created_at : MilliSecondsSinceUnixEpoch ,
1215
1229
upload_file_txn : OwnedTransactionId ,
1216
1230
file_media_request : MediaRequestParameters ,
1217
- thumbnail : Option < ( FinishUploadThumbnailInfo , MediaRequestParameters , Mime ) > ,
1231
+ thumbnail : Option < QueueThumbnailInfo > ,
1218
1232
) -> Result < ( ) , RoomSendQueueStorageError > {
1219
1233
let guard = self . store . lock ( ) . await ;
1220
1234
let client = guard. client ( ) ?;
@@ -1300,35 +1314,38 @@ impl QueueStorage {
1300
1314
thumbnail,
1301
1315
} = item_queue_info;
1302
1316
1303
- let thumbnail_info =
1304
- if let Some ( ( thumbnail_info, thumbnail_media_request, thumbnail_content_type) ) =
1305
- thumbnail
1306
- {
1307
- let upload_thumbnail_txn = thumbnail_info. txn . clone ( ) ;
1317
+ let thumbnail_info = if let Some ( QueueThumbnailInfo {
1318
+ finish_upload_thumbnail_info : thumbnail_info,
1319
+ media_request_parameters : thumbnail_media_request,
1320
+ content_type : thumbnail_content_type,
1321
+ ..
1322
+ } ) = thumbnail
1323
+ {
1324
+ let upload_thumbnail_txn = thumbnail_info. txn . clone ( ) ;
1308
1325
1309
- // Save the thumbnail upload request as a dependent request of the last file
1310
- // upload.
1311
- store
1312
- . save_dependent_queued_request (
1313
- & self . room_id ,
1314
- & last_upload_file_txn,
1315
- upload_thumbnail_txn. clone ( ) . into ( ) ,
1316
- created_at,
1317
- DependentQueuedRequestKind :: UploadFileOrThumbnail {
1318
- content_type : thumbnail_content_type. to_string ( ) ,
1319
- cache_key : thumbnail_media_request. clone ( ) ,
1320
- related_to : send_event_txn. clone ( ) ,
1321
- parent_is_thumbnail_upload : false ,
1322
- } ,
1323
- )
1324
- . await ?;
1326
+ // Save the thumbnail upload request as a dependent request of the last file
1327
+ // upload.
1328
+ store
1329
+ . save_dependent_queued_request (
1330
+ & self . room_id ,
1331
+ & last_upload_file_txn,
1332
+ upload_thumbnail_txn. clone ( ) . into ( ) ,
1333
+ created_at,
1334
+ DependentQueuedRequestKind :: UploadFileOrThumbnail {
1335
+ content_type : thumbnail_content_type. to_string ( ) ,
1336
+ cache_key : thumbnail_media_request. clone ( ) ,
1337
+ related_to : send_event_txn. clone ( ) ,
1338
+ parent_is_thumbnail_upload : false ,
1339
+ } ,
1340
+ )
1341
+ . await ?;
1325
1342
1326
- last_upload_file_txn = upload_thumbnail_txn;
1343
+ last_upload_file_txn = upload_thumbnail_txn;
1327
1344
1328
- Some ( thumbnail_info)
1329
- } else {
1330
- None
1331
- } ;
1345
+ Some ( thumbnail_info)
1346
+ } else {
1347
+ None
1348
+ } ;
1332
1349
1333
1350
// Save the file upload as a dependent request of the previous upload.
1334
1351
store
@@ -1386,9 +1403,15 @@ impl QueueStorage {
1386
1403
created_at : MilliSecondsSinceUnixEpoch ,
1387
1404
upload_file_txn : OwnedTransactionId ,
1388
1405
file_media_request : MediaRequestParameters ,
1389
- thumbnail : Option < ( FinishUploadThumbnailInfo , MediaRequestParameters , Mime ) > ,
1406
+ thumbnail : Option < QueueThumbnailInfo > ,
1390
1407
) -> Result < Option < FinishUploadThumbnailInfo > , RoomSendQueueStorageError > {
1391
- if let Some ( ( thumbnail_info, thumbnail_media_request, thumbnail_content_type) ) = thumbnail {
1408
+ if let Some ( QueueThumbnailInfo {
1409
+ finish_upload_thumbnail_info : thumbnail_info,
1410
+ media_request_parameters : thumbnail_media_request,
1411
+ content_type : thumbnail_content_type,
1412
+ ..
1413
+ } ) = thumbnail
1414
+ {
1392
1415
let upload_thumbnail_txn = thumbnail_info. txn . clone ( ) ;
1393
1416
1394
1417
// Save the thumbnail upload request.
@@ -1980,7 +2003,7 @@ struct GalleryItemQueueInfo {
1980
2003
content_type : Mime ,
1981
2004
upload_file_txn : OwnedTransactionId ,
1982
2005
file_media_request : MediaRequestParameters ,
1983
- thumbnail : Option < ( FinishUploadThumbnailInfo , MediaRequestParameters , Mime ) > ,
2006
+ thumbnail : Option < QueueThumbnailInfo > ,
1984
2007
}
1985
2008
1986
2009
/// The content of a local echo.
0 commit comments