@@ -32,6 +32,17 @@ export const matchPathStepAndOp = (
32
32
return step . track === op . track && step . offset === op . offsetOnTrack ;
33
33
} ;
34
34
35
+ export const populatePathStepIdInSuggestedOPs = (
36
+ suggestedOPs : SuggestedOP [ ] ,
37
+ pathSteps : PathStep [ ]
38
+ ) : SuggestedOP [ ] =>
39
+ suggestedOPs . map ( ( op ) => ( {
40
+ ...op ,
41
+ pathStepId : pathSteps . find (
42
+ ( pathStep ) => matchPathStepAndOp ( pathStep , op ) // TODO: && op.kp === pathStep.kp
43
+ ) ?. id ,
44
+ } ) ) ;
45
+
35
46
export const formatSuggestedOperationalPoints = (
36
47
operationalPoints : Array <
37
48
NonNullable < Required < PathProperties [ 'operational_points' ] > > [ number ] & {
@@ -41,27 +52,22 @@ export const formatSuggestedOperationalPoints = (
41
52
pathSteps : PathStep [ ] ,
42
53
geometry : GeoJsonLineString ,
43
54
pathLength : number
44
- ) : SuggestedOP [ ] =>
45
- operationalPoints
46
- . map ( ( op ) => ( {
47
- opId : op . id ,
48
- name : op . extensions ?. identifier ?. name ,
49
- uic : op . extensions ?. identifier ?. uic ,
50
- ch : op . extensions ?. sncf ?. ch ,
51
- kp : op . part . extensions ?. sncf ?. kp ,
52
- trigram : op . extensions ?. sncf ?. trigram ,
53
- offsetOnTrack : op . part . position ,
54
- track : op . part . track ,
55
- positionOnPath : op . position ,
56
- coordinates : getPointCoordinates ( geometry , pathLength , op . position ) ,
57
- metadata : op ?. metadata ,
58
- } ) )
59
- . map ( ( op ) => ( {
60
- ...op ,
61
- pathStepId : pathSteps . find (
62
- ( pathStep ) => matchPathStepAndOp ( pathStep , op ) && op . kp === pathStep . kp
63
- ) ?. id ,
64
- } ) ) ;
55
+ ) : SuggestedOP [ ] => {
56
+ const suggestedOPs = operationalPoints . map ( ( op ) => ( {
57
+ opId : op . id ,
58
+ name : op . extensions ?. identifier ?. name ,
59
+ uic : op . extensions ?. identifier ?. uic ,
60
+ ch : op . extensions ?. sncf ?. ch ,
61
+ kp : op . part . extensions ?. sncf ?. kp ,
62
+ trigram : op . extensions ?. sncf ?. trigram ,
63
+ offsetOnTrack : op . part . position ,
64
+ track : op . part . track ,
65
+ positionOnPath : op . position ,
66
+ coordinates : getPointCoordinates ( geometry , pathLength , op . position ) ,
67
+ metadata : op ?. metadata ,
68
+ } ) ) ;
69
+ return populatePathStepIdInSuggestedOPs ( suggestedOPs , pathSteps ) ;
70
+ } ;
65
71
66
72
export const getPathfindingQuery = ( {
67
73
infraId,
0 commit comments