Skip to content

Commit 9920db2

Browse files
committed
editoast: include train name in requirement endpoint
Signed-off-by: Eloi Charpentier <[email protected]>
1 parent 2d63309 commit 9920db2

File tree

4 files changed

+30
-19
lines changed

4 files changed

+30
-19
lines changed

editoast/core_client/src/conflict_detection.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ pub struct TrainRequirements {
3737
#[schema(as = core::TrainRequirementsById)]
3838
pub struct TrainRequirementsById {
3939
pub train_id: String,
40+
pub train_name: String,
4041
pub start_time: DateTime<Utc>,
4142
pub spacing_requirements: Vec<SpacingRequirement>,
4243
pub routing_requirements: Vec<RoutingRequirement>,

editoast/openapi.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

editoast/src/views/timetable.rs

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -778,8 +778,10 @@ pub(in crate::views) async fn requirements(
778778
.into_iter()
779779
.map(|(sim, _)| Arc::unwrap_or_clone(sim));
780780
let start_times = trains.iter().map(|ts| ts.start_time());
781+
let train_names = trains.iter().map(|ts| ts.train_name.clone());
781782
let results =
782-
build_trains_requirements(train_ids.into_iter(), start_times, simulations).collect();
783+
build_trains_requirements(train_ids.into_iter(), start_times, simulations, train_names)
784+
.collect();
783785

784786
Ok(Json(TrainRequirementsPage { results, stats }))
785787
}
@@ -788,25 +790,29 @@ fn build_trains_requirements(
788790
train_ids: impl Iterator<Item = TrainId>,
789791
start_times: impl Iterator<Item = DateTime<Utc>>,
790792
simulations: impl Iterator<Item = simulation::Response>,
793+
train_names: impl Iterator<Item = String>,
791794
) -> impl Iterator<Item = TrainRequirementsById> {
792-
izip!(train_ids, start_times, simulations).filter_map(|(train_id, start_time, sim)| {
793-
let CompleteReportTrain {
794-
spacing_requirements,
795-
routing_requirements,
796-
..
797-
} = match sim {
798-
simulation::Response::Success(SimulationResponseSuccess { final_output, .. }) => {
799-
Some(final_output)
800-
}
801-
_ => None,
802-
}?;
803-
Some(TrainRequirementsById {
804-
train_id: train_id.to_string(),
805-
start_time,
806-
spacing_requirements,
807-
routing_requirements,
808-
})
809-
})
795+
izip!(train_ids, start_times, simulations, train_names).filter_map(
796+
|(train_id, start_time, sim, train_name)| {
797+
let CompleteReportTrain {
798+
spacing_requirements,
799+
routing_requirements,
800+
..
801+
} = match sim {
802+
simulation::Response::Success(SimulationResponseSuccess {
803+
final_output, ..
804+
}) => Some(final_output),
805+
_ => None,
806+
}?;
807+
Some(TrainRequirementsById {
808+
train_id: train_id.to_string(),
809+
start_time,
810+
spacing_requirements,
811+
routing_requirements,
812+
train_name,
813+
})
814+
},
815+
)
810816
}
811817

812818
#[derive(Serialize, ToSchema)]

front/src/common/api/generatedEditoastApi.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4942,6 +4942,7 @@ export type CoreTrainRequirementsById = {
49424942
spacing_requirements: CoreSpacingRequirement[];
49434943
start_time: string;
49444944
train_id: string;
4945+
train_name: string;
49454946
};
49464947
export type CoreStepTimingData = {
49474948
/** Time the train should arrive at this point */

0 commit comments

Comments
 (0)