summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2022-09-24 16:13:05 +0000
committerSanto Cariotti <santo@dcariotti.me>2022-09-24 16:13:05 +0000
commite3e1fb936e807a96e80229bc86d1c4bb385e88da (patch)
tree92bae09802dc4d3d2ea6abf2b86e38058bc0983d
parent357b9e646df220575df37fe1d6705a9667210997 (diff)
Use all paginators into `pagination` crate
-rw-r--r--src/pagination.rs15
-rw-r--r--src/routes/model.rs9
-rw-r--r--src/routes/user.rs10
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,