From e3e1fb936e807a96e80229bc86d1c4bb385e88da Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Sat, 24 Sep 2022 18:13:05 +0200 Subject: Use all paginators into `pagination` crate --- src/pagination.rs | 15 ++++++++++++++- src/routes/model.rs | 9 +-------- src/routes/user.rs | 10 +--------- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/pagination.rs b/src/pagination.rs index 51ea111..38f67a3 100644 --- a/src/pagination.rs +++ b/src/pagination.rs @@ -1,7 +1,20 @@ -use serde::Deserialize; +use crate::models::{model::ModelUser, user::UserList}; +use serde::{Deserialize, Serialize}; #[derive(Deserialize)] pub struct Pagination { #[serde(skip_serializing_if = "Option::is_none")] pub page: Option, } + +#[derive(Serialize)] +pub struct UserPagination { + pub count: i64, + pub results: Vec, +} + +#[derive(Serialize)] +pub struct ModelPagination { + pub count: i64, + pub results: Vec, +} diff --git a/src/routes/model.rs b/src/routes/model.rs index 16468d0..8c2e656 100644 --- a/src/routes/model.rs +++ b/src/routes/model.rs @@ -6,7 +6,7 @@ use crate::{ model::{Model, ModelCreate, ModelUpload, ModelUser}, user::User, }, - pagination::Pagination, + pagination::{ModelPagination, Pagination}, routes::JsonCreate, }; use axum::{ @@ -15,7 +15,6 @@ use axum::{ routing::{delete, get, post}, Json, Router, }; -use serde::Serialize; /// Create routes for `/v1/models/` namespace pub fn create_route() -> Router { @@ -26,12 +25,6 @@ pub fn create_route() -> Router { .route("/:id/upload/:uid", delete(delete_model_file)) } -#[derive(Serialize)] -pub struct ModelPagination { - pub count: i64, - pub results: Vec, -} - /// List models. async fn list_models(pagination: Query) -> Result, AppError> { let page = pagination.0.page.unwrap_or_default(); diff --git a/src/routes/user.rs b/src/routes/user.rs index 172007a..bc87bf5 100644 --- a/src/routes/user.rs +++ b/src/routes/user.rs @@ -5,15 +5,13 @@ use crate::{ auth::Claims, user::{User, UserList}, }, - pagination::Pagination, - routes::model::ModelPagination, + pagination::{ModelPagination, Pagination, UserPagination}, }; use axum::{ extract::{ContentLengthLimit, Multipart, Path, Query}, routing::{get, put}, Json, Router, }; -use serde::Serialize; /// Create routes for `/v1/users/` namespace pub fn create_route() -> Router { @@ -25,12 +23,6 @@ pub fn create_route() -> Router { .route("/:id/models", get(get_user_models)) } -#[derive(Serialize)] -struct UserPagination { - count: i64, - results: Vec, -} - /// List users. Checks Authorization token async fn list_users( _: Claims, -- cgit v1.2.3-71-g8e6c