diff options
| author | Santo Cariotti <santo@dcariotti.me> | 2022-09-24 16:13:05 +0000 |
|---|---|---|
| committer | Santo Cariotti <santo@dcariotti.me> | 2022-09-24 16:13:05 +0000 |
| commit | e3e1fb936e807a96e80229bc86d1c4bb385e88da (patch) | |
| tree | 92bae09802dc4d3d2ea6abf2b86e38058bc0983d /src | |
| parent | 357b9e646df220575df37fe1d6705a9667210997 (diff) | |
Use all paginators into `pagination` crate
Diffstat (limited to 'src')
| -rw-r--r-- | src/pagination.rs | 15 | ||||
| -rw-r--r-- | src/routes/model.rs | 9 | ||||
| -rw-r--r-- | 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<i64>, } + +#[derive(Serialize)] +pub struct UserPagination { + pub count: i64, + pub results: Vec<UserList>, +} + +#[derive(Serialize)] +pub struct ModelPagination { + pub count: i64, + pub results: Vec<ModelUser>, +} 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<ModelUser>, -} - /// List models. async fn list_models(pagination: Query<Pagination>) -> Result<Json<ModelPagination>, 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<UserList>, -} - /// List users. Checks Authorization token async fn list_users( _: Claims, |
