feat: Implement pagination for user media retrieval and update related structures
This commit is contained in:
@@ -12,7 +12,7 @@ use libertas_core::{
|
||||
media_utils::{extract_exif_data_from_bytes, get_storage_path_and_date},
|
||||
models::{Media, MediaBundle},
|
||||
repositories::{MediaMetadataRepository, MediaRepository, UserRepository},
|
||||
schema::{ListMediaOptions, UploadMediaData},
|
||||
schema::{ListMediaOptions, PaginatedResponse, UploadMediaData},
|
||||
services::{AuthorizationService, MediaService},
|
||||
};
|
||||
use serde_json::json;
|
||||
@@ -109,8 +109,14 @@ impl MediaService for MediaServiceImpl {
|
||||
&self,
|
||||
user_id: Uuid,
|
||||
options: ListMediaOptions,
|
||||
) -> CoreResult<Vec<Media>> {
|
||||
self.repo.list_by_user(user_id, &options).await
|
||||
) -> CoreResult<PaginatedResponse<Media>> {
|
||||
let (data, total_items) = self.repo.list_by_user(user_id, &options).await?;
|
||||
|
||||
let pagination = options.pagination.unwrap();
|
||||
|
||||
let response = PaginatedResponse::new(data, pagination.page, pagination.limit, total_items);
|
||||
|
||||
Ok(response)
|
||||
}
|
||||
|
||||
async fn get_media_filepath(&self, id: Uuid, user_id: Option<Uuid>) -> CoreResult<String> {
|
||||
|
||||
Reference in New Issue
Block a user