Skip to content

Commit 4727c36

Browse files
flomonsterleovalais
andcommitted
editoast: fix missing order by in paginated endpoints
Co-authored-by: Léo VALAIS <[email protected]> Signed-off-by: Florian Amsallem <[email protected]>
1 parent c003b03 commit 4727c36

File tree

5 files changed

+16
-7
lines changed

5 files changed

+16
-7
lines changed

editoast/src/models/round_trips.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ impl TrainScheduleRoundTrips {
3838
let query = train_schedule_round_trips::table
3939
.inner_join(train_schedule::table)
4040
.select(train_schedule_round_trips::all_columns)
41-
.filter(train_schedule::dsl::timetable_id.eq(timetable_id));
41+
.filter(train_schedule::dsl::timetable_id.eq(timetable_id))
42+
.order_by(train_schedule_round_trips::id.asc());
4243

4344
let (results, count): (Vec<TrainScheduleRoundTripsRow>, _) =
4445
load_for_pagination(conn, query, page, page_size).await?;
@@ -109,7 +110,8 @@ impl PacedTrainRoundTrips {
109110
let query = paced_train_round_trips::table
110111
.inner_join(paced_train::table)
111112
.select(paced_train_round_trips::all_columns)
112-
.filter(paced_train::dsl::timetable_id.eq(timetable_id));
113+
.filter(paced_train::dsl::timetable_id.eq(timetable_id))
114+
.order_by(paced_train_round_trips::id.asc());
113115

114116
let (results, count): (Vec<PacedTrainRoundTripsRow>, _) =
115117
load_for_pagination(conn, query, page, page_size).await?;

editoast/src/views/infra/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,8 @@ pub(in crate::views) async fn list(
216216
}
217217
};
218218

219-
let (infras, stats) = Infra::list_paginated(conn, settings).await?;
219+
let (infras, stats) =
220+
Infra::list_paginated(conn, settings.order_by(move || Infra::ID.asc())).await?;
220221

221222
let response = InfraListResponse {
222223
stats,

editoast/src/views/scenario/macro_nodes.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,9 @@ pub(in crate::views) async fn list(
171171
let settings = pagination_params
172172
.into_selection_settings()
173173
.filter(move || MacroNode::SCENARIO_ID.eq(scenario_id));
174-
let (result, stats) = MacroNode::list_paginated(&mut conn, settings).await?;
174+
let (result, stats) =
175+
MacroNode::list_paginated(&mut conn, settings.order_by(move || MacroNode::ID.asc()))
176+
.await?;
175177

176178
// Produce the response
177179
Ok(Json(MacroNodeListResponse {

editoast/src/views/sub_categories.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,9 @@ pub(in crate::views) async fn get_sub_categories(
8686

8787
let (sub_categories, stats) = editoast_models::SubCategory::list_paginated(
8888
&mut conn,
89-
pagination.into_selection_settings(),
89+
pagination
90+
.into_selection_settings()
91+
.order_by(move || editoast_models::SubCategory::ID.asc()),
9092
)
9193
.await?;
9294

editoast/src/views/timetable.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -700,10 +700,12 @@ pub(in crate::views) async fn requirements(
700700
(
701701
page_settings
702702
.into_selection_settings()
703-
.filter(move || models::TrainSchedule::TIMETABLE_ID.eq(timetable_id)),
703+
.filter(move || models::TrainSchedule::TIMETABLE_ID.eq(timetable_id))
704+
.order_by(move || models::TrainSchedule::ID.asc()),
704705
page_settings
705706
.into_selection_settings()
706-
.filter(move || models::PacedTrain::TIMETABLE_ID.eq(timetable_id)),
707+
.filter(move || models::PacedTrain::TIMETABLE_ID.eq(timetable_id))
708+
.order_by(move || models::PacedTrain::ID.asc()),
707709
),
708710
)
709711
.await?;

0 commit comments

Comments
 (0)