diff --git a/editoast/src/views/infra/errors.rs b/editoast/src/views/infra/errors.rs index 43df0c14875..183cc360a8a 100644 --- a/editoast/src/views/infra/errors.rs +++ b/editoast/src/views/infra/errors.rs @@ -19,7 +19,7 @@ use crate::models::infra::errors::Level; use crate::models::prelude::*; use crate::models::Infra; use crate::views::infra::InfraIdParam; -use crate::views::pagination::PaginationQueryParam; +use crate::views::pagination::PaginationQueryParams; use crate::views::pagination::PaginationStats; use crate::views::AuthenticationExt; use crate::views::AuthorizationError; @@ -65,7 +65,7 @@ pub(in crate::views) struct InfraErrorResponse { #[utoipa::path( get, path = "", tag = "infra", - params(InfraIdParam, PaginationQueryParam, ErrorListQueryParams), + params(InfraIdParam, PaginationQueryParams, ErrorListQueryParams), responses( (status = 200, body = inline(ErrorListResponse), description = "A paginated list of errors"), ), @@ -74,7 +74,7 @@ async fn list_errors( State(db_pool): State, Extension(auth): AuthenticationExt, Path(InfraIdParam { infra_id }): Path, - Query(pagination_params): Query, + Query(pagination_params): Query, Query(ErrorListQueryParams { level, error_type, diff --git a/editoast/src/views/infra/mod.rs b/editoast/src/views/infra/mod.rs index d41d161315b..442886c72c6 100644 --- a/editoast/src/views/infra/mod.rs +++ b/editoast/src/views/infra/mod.rs @@ -39,7 +39,7 @@ use crate::map; use crate::models::prelude::*; use crate::models::Infra; use crate::views::pagination::PaginatedList as _; -use crate::views::pagination::PaginationQueryParam; +use crate::views::pagination::PaginationQueryParams; use crate::views::AuthorizationError; use crate::AppState; use editoast_models::DbConnectionPoolV2; @@ -195,7 +195,7 @@ struct InfraListResponse { #[utoipa::path( get, path = "", tag = "infra", - params(PaginationQueryParam), + params(PaginationQueryParams), responses( (status = 200, description = "All infras, paginated", body = inline(InfraListResponse)) ), @@ -203,7 +203,7 @@ struct InfraListResponse { async fn list( app_state: State, Extension(auth): AuthenticationExt, - pagination_params: Query, + pagination_params: Query, ) -> Result> { let authorized = auth .check_roles([BuiltinRole::InfraRead].into()) diff --git a/editoast/src/views/pagination.rs b/editoast/src/views/pagination.rs index 4d7b5f0e23a..75ba814771c 100644 --- a/editoast/src/views/pagination.rs +++ b/editoast/src/views/pagination.rs @@ -105,7 +105,7 @@ pub trait PaginatedList: ListAndCount + 'static { /// before this function is called (e.g.: non-null page size). /// 2. Panics if the limit or the offset of the `settings` are not set, so be /// sure to call [SelectionSettings::from_pagination_settings] or [SelectionSettings::limit] - /// and [SelectionSettings::offset] beforehand. [PaginationQueryParam::into_selection_settings] + /// and [SelectionSettings::offset] beforehand. [PaginationQueryParams::into_selection_settings] /// works as well. async fn list_paginated( conn: &mut DbConnection, @@ -124,7 +124,7 @@ impl PaginatedList for T where T: ListAndCount + 'static {} #[derive(Debug, Clone, Copy, Deserialize, IntoParams)] #[into_params(parameter_in = Query)] -pub struct PaginationQueryParam { +pub struct PaginationQueryParams { #[serde(default = "default_page")] #[param(minimum = 1, default = 1)] pub page: u64, @@ -136,14 +136,14 @@ const fn default_page() -> u64 { 1 } -impl PaginationQueryParam { +impl PaginationQueryParams { /// Returns a pre-filled [SelectionSettings] from the pagination settings /// that can then be used to list or count models pub fn into_selection_settings(self) -> SelectionSettings { self.into() } - pub fn validate(self, max_page_size: i64) -> Result { + pub fn validate(self, max_page_size: i64) -> Result { let (page, page_size) = self.unpack(); if page_size > max_page_size || page_size < 1 || page < 1 { return Err(PaginationError::InvalidPageSize { @@ -155,7 +155,7 @@ impl PaginationQueryParam { Ok(self) } - pub fn warn_page_size(self, warn_page_size: i64) -> PaginationQueryParam { + pub fn warn_page_size(self, warn_page_size: i64) -> PaginationQueryParams { let (_, page_size) = self.unpack(); if page_size > warn_page_size { warn!( @@ -172,8 +172,8 @@ impl PaginationQueryParam { } } -impl From for SelectionSettings { - fn from(PaginationQueryParam { page, page_size }: PaginationQueryParam) -> Self { +impl From for SelectionSettings { + fn from(PaginationQueryParams { page, page_size }: PaginationQueryParams) -> Self { let page_size = page_size.unwrap_or(DEFAULT_PAGE_SIZE); SelectionSettings::from_pagination_settings(page, page_size) } diff --git a/editoast/src/views/projects.rs b/editoast/src/views/projects.rs index e1a8680c59c..746198a52ef 100644 --- a/editoast/src/views/projects.rs +++ b/editoast/src/views/projects.rs @@ -29,7 +29,7 @@ use crate::models::Document; use crate::models::Model; use crate::models::Project; use crate::models::Retrieve; -use crate::views::pagination::PaginationQueryParam; +use crate::views::pagination::PaginationQueryParams; use crate::views::AuthorizationError; crate::routes! { @@ -181,7 +181,7 @@ struct ProjectWithStudyCountList { #[utoipa::path( get, path = "", tag = "projects", - params(PaginationQueryParam, OperationalStudiesOrderingParam), + params(PaginationQueryParams, OperationalStudiesOrderingParam), responses( (status = 200, body = inline(ProjectWithStudyCountList), description = "The list of projects"), ) @@ -189,7 +189,7 @@ struct ProjectWithStudyCountList { async fn list( State(db_pool): State, Extension(auth): AuthenticationExt, - Query(pagination_params): Query, + Query(pagination_params): Query, Query(ordering_params): Query, ) -> Result> { let authorized = auth diff --git a/editoast/src/views/rolling_stock/light.rs b/editoast/src/views/rolling_stock/light.rs index 893b4f0b1a2..3fb925e3e66 100644 --- a/editoast/src/views/rolling_stock/light.rs +++ b/editoast/src/views/rolling_stock/light.rs @@ -28,7 +28,7 @@ use crate::models::rolling_stock_livery::RollingStockLiveryModel; use crate::models::Retrieve; use crate::models::RollingStockModel; use crate::views::pagination::PaginatedList; -use crate::views::pagination::PaginationQueryParam; +use crate::views::pagination::PaginationQueryParams; use crate::views::pagination::PaginationStats; use crate::List; use crate::SelectionSettings; @@ -98,7 +98,7 @@ struct LightRollingStockWithLiveriesCountList { #[utoipa::path( get, path = "", tag = "rolling_stock", - params(PaginationQueryParam), + params(PaginationQueryParams), responses( (status = 200, body = inline(LightRollingStockWithLiveriesCountList)), ) @@ -106,7 +106,7 @@ struct LightRollingStockWithLiveriesCountList { async fn list( State(db_pool): State, Extension(auth): AuthenticationExt, - Query(page_settings): Query, + Query(page_settings): Query, ) -> Result> { let authorized = auth .check_roles([BuiltinRole::RollingStockCollectionRead].into()) diff --git a/editoast/src/views/rolling_stock/towed.rs b/editoast/src/views/rolling_stock/towed.rs index 5b6d278d838..43ab27ba5b5 100644 --- a/editoast/src/views/rolling_stock/towed.rs +++ b/editoast/src/views/rolling_stock/towed.rs @@ -3,7 +3,7 @@ use crate::error::Result; use crate::models::prelude::*; use crate::models::towed_rolling_stock::TowedRollingStockModel; use crate::views::pagination::PaginatedList; -use crate::views::pagination::PaginationQueryParam; +use crate::views::pagination::PaginationQueryParams; use crate::views::pagination::PaginationStats; use crate::views::AuthenticationExt; use crate::views::AuthorizationError; @@ -166,7 +166,7 @@ struct TowedRollingStockCountList { #[utoipa::path( get, path = "", tag = "rolling_stock", - params(PaginationQueryParam), + params(PaginationQueryParams), responses( (status = 200, body = inline(TowedRollingStockCountList)), ) @@ -174,7 +174,7 @@ struct TowedRollingStockCountList { async fn get_list( State(db_pool): State, Extension(auth): AuthenticationExt, - Query(page_settings): Query, + Query(page_settings): Query, ) -> Result> { let authorized = auth .check_roles([BuiltinRole::RollingStockCollectionRead].into()) diff --git a/editoast/src/views/scenario.rs b/editoast/src/views/scenario.rs index b55fdd6cb6d..ffef675b125 100644 --- a/editoast/src/views/scenario.rs +++ b/editoast/src/views/scenario.rs @@ -28,7 +28,7 @@ use crate::models::Study; use crate::models::Tags; use crate::views::operational_studies::OperationalStudiesOrderingParam; use crate::views::pagination::PaginatedList as _; -use crate::views::pagination::PaginationQueryParam; +use crate::views::pagination::PaginationQueryParams; use crate::views::pagination::PaginationStats; use crate::views::projects::ProjectError; use crate::views::projects::ProjectIdParam; @@ -474,7 +474,7 @@ struct ListScenariosResponse { #[utoipa::path( get, path = "", tag = "scenarios", - params(ProjectIdParam, StudyIdParam, PaginationQueryParam, OperationalStudiesOrderingParam), + params(ProjectIdParam, StudyIdParam, PaginationQueryParams, OperationalStudiesOrderingParam), responses( (status = 200, description = "A paginated list of scenarios", body = inline(ListScenariosResponse)), (status = 404, description = "Project or study doesn't exist") @@ -484,7 +484,7 @@ async fn list( State(db_pool): State, Extension(auth): AuthenticationExt, Path((project_id, study_id)): Path<(i64, i64)>, - Query(pagination_params): Query, + Query(pagination_params): Query, Query(OperationalStudiesOrderingParam { ordering }): Query, ) -> Result> { let authorized = auth diff --git a/editoast/src/views/search.rs b/editoast/src/views/search.rs index 3f1fe6a6c8b..9ae2c811cac 100644 --- a/editoast/src/views/search.rs +++ b/editoast/src/views/search.rs @@ -232,7 +232,7 @@ use std::collections::HashSet; use utoipa::ToSchema; use crate::error::Result; -use crate::views::pagination::PaginationQueryParam; +use crate::views::pagination::PaginationQueryParams; use crate::views::AuthenticationExt; use crate::views::AuthorizationError; use editoast_models::DbConnectionPoolV2; @@ -338,7 +338,7 @@ struct SearchDBResult { #[utoipa::path( post, path = "", tag = "search", - params(PaginationQueryParam), + params(PaginationQueryParams), request_body = SearchPayload, responses( (status = 200, body = Vec, description = "The search results"), @@ -347,7 +347,7 @@ struct SearchDBResult { async fn search( State(db_pool): State, Extension(auth): AuthenticationExt, - Query(query_params): Query, + Query(query_params): Query, Json(SearchPayload { object, query, dry }): Json, ) -> Result> { let roles: HashSet = match object.as_str() { diff --git a/editoast/src/views/study.rs b/editoast/src/views/study.rs index 35cdb8a7832..5ff3c6822bb 100644 --- a/editoast/src/views/study.rs +++ b/editoast/src/views/study.rs @@ -29,7 +29,7 @@ use crate::models::Project; use crate::models::Study; use crate::models::Tags; use crate::views::pagination::PaginatedList as _; -use crate::views::pagination::PaginationQueryParam; +use crate::views::pagination::PaginationQueryParams; use crate::views::projects::ProjectError; use crate::views::projects::ProjectIdParam; @@ -396,7 +396,7 @@ struct StudyListResponse { #[utoipa::path( get, path = "", tag = "studies", - params(ProjectIdParam, PaginationQueryParam, OperationalStudiesOrderingParam), + params(ProjectIdParam, PaginationQueryParams, OperationalStudiesOrderingParam), responses( (status = 200, body = inline(StudyListResponse), description = "The list of studies"), ) @@ -405,7 +405,7 @@ async fn list( State(db_pool): State, Extension(auth): AuthenticationExt, Path(project_id): Path, - Query(pagination_params): Query, + Query(pagination_params): Query, Query(ordering_params): Query, ) -> Result> { let authorized = auth diff --git a/editoast/src/views/work_schedules.rs b/editoast/src/views/work_schedules.rs index 6c555edf8ce..7d3c2beb5af 100644 --- a/editoast/src/views/work_schedules.rs +++ b/editoast/src/views/work_schedules.rs @@ -7,7 +7,7 @@ use crate::models::work_schedules::WorkSchedule; use crate::models::work_schedules::WorkScheduleGroup; use crate::models::work_schedules::WorkScheduleType; use crate::views::operational_studies::Ordering; -use crate::views::pagination::PaginationQueryParam; +use crate::views::pagination::PaginationQueryParams; use crate::views::pagination::PaginationStats; use crate::views::path::projection::Intersection; use crate::views::path::projection::PathProjection; @@ -472,7 +472,7 @@ pub struct WorkScheduleOrderingParam { #[utoipa::path( get, path = "", tag = "work_schedules", - params(PaginationQueryParam, WorkScheduleGroupIdParam, WorkScheduleOrderingParam), + params(PaginationQueryParams, WorkScheduleGroupIdParam, WorkScheduleOrderingParam), responses( (status = 200, description = "The work schedules in the group", body = inline(GroupContentResponse)), (status = 404, description = "Work schedule group not found"), @@ -482,7 +482,7 @@ async fn get_group( State(db_pool): State, Extension(auth): AuthenticationExt, Path(WorkScheduleGroupIdParam { id: group_id }): Path, - Query(pagination_params): Query, + Query(pagination_params): Query, Query(ordering_params): Query, ) -> Result> { let authorized = auth