@golemio/pid 2.11.6-dev.1158774210 → 2.11.6-rc.1169330401

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/db/example/15_vehicle_descriptors.sql +4 -2
  2. package/db/example/16_preset_logs.sql +3 -1
  3. package/db/example/redis/publicDelayCompObjectMock.json +308 -0
  4. package/db/example/redis/publicStopTimesMock.json +37 -0
  5. package/db/example/redis/publicVehiclePositionsMock.json +36 -28
  6. package/dist/integration-engine/data-retention/helpers/SelectRepositoryFactory.d.ts +7 -0
  7. package/dist/integration-engine/data-retention/helpers/SelectRepositoryFactory.js +49 -0
  8. package/dist/integration-engine/data-retention/helpers/SelectRepositoryFactory.js.map +1 -0
  9. package/dist/integration-engine/data-retention/workers/DataRetentionWorker.js +2 -0
  10. package/dist/integration-engine/data-retention/workers/DataRetentionWorker.js.map +1 -1
  11. package/dist/integration-engine/data-retention/workers/constants/RepositoryTableNameEnum.d.ts +9 -0
  12. package/dist/integration-engine/data-retention/workers/constants/RepositoryTableNameEnum.js +14 -0
  13. package/dist/integration-engine/data-retention/workers/constants/RepositoryTableNameEnum.js.map +1 -0
  14. package/dist/integration-engine/{vehicle-positions/workers/vehicle-positions → data-retention/workers}/tasks/DeleteDataTask.d.ts +3 -4
  15. package/dist/integration-engine/{vehicle-positions/workers/vehicle-positions → data-retention/workers}/tasks/DeleteDataTask.js +7 -8
  16. package/dist/integration-engine/data-retention/workers/tasks/DeleteDataTask.js.map +1 -0
  17. package/dist/integration-engine/ropid-gtfs/RopidGTFSTripsModel.js +1 -1
  18. package/dist/integration-engine/ropid-gtfs/RopidGTFSTripsModel.js.map +1 -1
  19. package/dist/integration-engine/ropid-gtfs/interfaces/TripModelInterfaces.d.ts +2 -0
  20. package/dist/integration-engine/ropid-gtfs/workers/presets/PresetWorker.js +0 -2
  21. package/dist/integration-engine/ropid-gtfs/workers/presets/PresetWorker.js.map +1 -1
  22. package/dist/integration-engine/shared/interfaces/IDataDeletionParams.d.ts +2 -0
  23. package/dist/integration-engine/shared/schema/DataDeletionSchema.d.ts +2 -0
  24. package/dist/integration-engine/shared/schema/DataDeletionSchema.js +6 -0
  25. package/dist/integration-engine/shared/schema/DataDeletionSchema.js.map +1 -1
  26. package/dist/integration-engine/vehicle-positions/ioc/Di.js +0 -2
  27. package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
  28. package/dist/integration-engine/vehicle-positions/workers/runs/RunsWorker.js +0 -2
  29. package/dist/integration-engine/vehicle-positions/workers/runs/RunsWorker.js.map +1 -1
  30. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/DescriptorWorker.js +0 -1
  31. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/DescriptorWorker.js.map +1 -1
  32. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/VPWorker.js +0 -2
  33. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/VPWorker.js.map +1 -1
  34. package/dist/output-gateway/public/domain/PublicApiDetailedTripInterfaces.d.ts +1 -0
  35. package/dist/output-gateway/public/service/transformations/scopes/PublicVPTripStopTimesTransformation.d.ts +1 -0
  36. package/dist/output-gateway/public/service/transformations/scopes/PublicVPTripStopTimesTransformation.js +8 -0
  37. package/dist/output-gateway/public/service/transformations/scopes/PublicVPTripStopTimesTransformation.js.map +1 -1
  38. package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IDelayComputationDto.d.ts +2 -0
  39. package/dist/schema-definitions/ropid-gtfs/redis/schemas/DelayComputationDtoSchema.js +2 -1
  40. package/dist/schema-definitions/ropid-gtfs/redis/schemas/DelayComputationDtoSchema.js.map +1 -1
  41. package/docs/implementation_documentation.md +9 -63
  42. package/docs/openapi-output.yaml +32 -14
  43. package/package.json +3 -3
  44. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DeleteLogsTask.d.ts +0 -11
  45. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DeleteLogsTask.js +0 -32
  46. package/dist/integration-engine/ropid-gtfs/workers/presets/tasks/DeleteLogsTask.js.map +0 -1
  47. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/DeleteDataTask.d.ts +0 -13
  48. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/DeleteDataTask.js +0 -37
  49. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/DeleteDataTask.js.map +0 -1
  50. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/tasks/DeleteDataTask.d.ts +0 -12
  51. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/tasks/DeleteDataTask.js +0 -50
  52. package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/tasks/DeleteDataTask.js.map +0 -1
  53. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/DeleteDataTask.js.map +0 -1
@@ -6,8 +6,10 @@ INSERT INTO vehiclepositions_vehicle_descriptors (id,state,registration_number,r
6
6
  (14,'zar',9366,1,NULL,'Dopravní podnik hl. m. Prahy','Škoda','15T5','tramvaj',0,true,false,'CVR Tommy Hilfiger – Klenoty Aurum, bílá s modrými a červenými pruhy',NULL,NULL,NULL,now(),NULL,NULL,now(),NULL),
7
7
  (15,'zar',9366,1,'8T0 XXXX','ARRIVA STŘEDNÍ ČECHY','SOR','C 10.5','autobus',3,false,false,'Veolia, červená s šedým pruhem',NULL,NULL,NULL,now(),NULL,NULL,now(),NULL),
8
8
  (16,'zar',8582,2,'5SX XXXX','OAD Kolín','Iveco','Crossway LE LINE 12M','autobus',3,false,false,'schéma PID, šedá s červenými svislými pruhy',NULL,NULL,NULL,now(),NULL,NULL,now(),NULL),
9
- (17,'zar',8581,2,'5SU XXXX','OAD Kolín','Iveco','Crossway LE LINE 12M','autobus',3,true,false,'schéma PID, šedá s červenými svislými pruhy',NULL,NULL,NULL,now(),NULL,NULL,now(),NULL);
9
+ (17,'zar',8581,2,'5SU XXXX','OAD Kolín','Iveco','Crossway LE LINE 12M','autobus',3,true,false,'schéma PID, šedá s červenými svislými pruhy',NULL,NULL,NULL,now(),NULL,NULL,now(),NULL),
10
+ (18,'zar',3927,2,'7AP 7543','Dopravní podnik hl. m. Prahy','SOR','NB 12','autobus',3,true,false,'městské schéma, červeno-bílá',null,null,NULL,now(),NULL,NULL,now(),NULL);
11
+
10
12
 
11
13
  -- To be deleted by the test
12
14
  INSERT INTO vehiclepositions_vehicle_descriptors (id,state,registration_number,registration_number_index,license_plate,"operator",manufacturer,"type",traction,gtfs_route_type,is_air_conditioned,has_usb_chargers,paint,thumbnail_url,photo_url,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
13
- (18,'zar',1094,1,'5AC XXXX','ČSAD Česká Lípa','Iveco','Crossway LINE 12M','autobus',3,true,false,'bílá',NULL,NULL,NULL,now() - interval '1 day',NULL,NULL,now() - interval '1 day',NULL);
15
+ (19,'zar',1094,1,'5AC XXXX','ČSAD Česká Lípa','Iveco','Crossway LINE 12M','autobus',3,true,false,'bílá',NULL,NULL,NULL,now() - interval '1 day',NULL,NULL,now() - interval '1 day',NULL);
@@ -6,4 +6,6 @@ INSERT INTO ropid_departures_presets (route_name,api_version,route,url_query_par
6
6
 
7
7
  -- To be deleted by the test
8
8
  INSERT INTO ropid_departures_preset_logs (device_alias,received_at,is_processed,request_url,request_method,request_user_agent,response_status,response_time_ms,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
9
- ('test-povstani-del',now() - interval '1 day',true,'/pid/test-povstani-del','GET','Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0',200,496,NULL,now() - interval '1 day',NULL,NULL,now() - interval '1 day',NULL);
9
+ ('test1-povstani-del1',now() - interval '1 day',true,'/pid/test-povstani-del','GET','Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0',200,496,NULL,now() - interval '1 day',NULL,NULL,now() - interval '1 day',NULL),
10
+ ('test2-povstani-del2',now(),true,'/pid/test-random-del','GET','test2',200,496,NULL,now(),NULL,NULL,now(),NULL),
11
+ ('test3-povstani-del3',now(),true,'/pid/test-deadly-del','GET','test3',200,496,NULL,now(),NULL,NULL,now(),NULL);
@@ -0,0 +1,308 @@
1
+ {
2
+ "stop_times": [
3
+ {
4
+ "arrival_time": "16:53:00",
5
+ "departure_time": "16:53:00",
6
+ "shape_dist_traveled": 0,
7
+ "stop_headsign": null,
8
+ "stop_id": "U1040Z19P",
9
+ "stop_sequence": 1,
10
+ "arrival_time_seconds": 60780,
11
+ "departure_time_seconds": 60780,
12
+ "stop": {
13
+ "stop_id": "U1040Z19P",
14
+ "stop_lat": 50.068737,
15
+ "stop_lon": 14.404152,
16
+ "stop_name": "Na Knížecí",
17
+ "zone_id": "P",
18
+ "wheelchair_boarding": 0
19
+ }
20
+ },
21
+ {
22
+ "arrival_time": "16:55:00",
23
+ "departure_time": "16:55:00",
24
+ "shape_dist_traveled": 0.65801,
25
+ "stop_headsign": null,
26
+ "stop_id": "U638Z1P",
27
+ "stop_sequence": 2,
28
+ "arrival_time_seconds": 60900,
29
+ "departure_time_seconds": 60900,
30
+ "stop": {
31
+ "stop_id": "U638Z1P",
32
+ "stop_lat": 50.066711,
33
+ "stop_lon": 14.399107,
34
+ "stop_name": "Santoška",
35
+ "zone_id": "P",
36
+ "wheelchair_boarding": 0
37
+ }
38
+ },
39
+ {
40
+ "arrival_time": "16:57:00",
41
+ "departure_time": "16:57:00",
42
+ "shape_dist_traveled": 1.209992,
43
+ "stop_headsign": null,
44
+ "stop_id": "U835Z1P",
45
+ "stop_sequence": 3,
46
+ "arrival_time_seconds": 61020,
47
+ "departure_time_seconds": 61020,
48
+ "stop": {
49
+ "stop_id": "U835Z1P",
50
+ "stop_lat": 50.065201,
51
+ "stop_lon": 14.393001,
52
+ "stop_name": "Václavka",
53
+ "zone_id": "P",
54
+ "wheelchair_boarding": 0
55
+ }
56
+ },
57
+ {
58
+ "arrival_time": "16:59:00",
59
+ "departure_time": "16:59:00",
60
+ "shape_dist_traveled": 1.606345,
61
+ "stop_headsign": null,
62
+ "stop_id": "U363Z1P",
63
+ "stop_sequence": 4,
64
+ "arrival_time_seconds": 61140,
65
+ "departure_time_seconds": 61140,
66
+ "stop": {
67
+ "stop_id": "U363Z1P",
68
+ "stop_lat": 50.064968,
69
+ "stop_lon": 14.3883,
70
+ "stop_name": "Malvazinky",
71
+ "zone_id": "P",
72
+ "wheelchair_boarding": 0
73
+ }
74
+ },
75
+ {
76
+ "arrival_time": "17:00:00",
77
+ "departure_time": "17:00:00",
78
+ "shape_dist_traveled": 1.992387,
79
+ "stop_headsign": null,
80
+ "stop_id": "U815Z1P",
81
+ "stop_sequence": 5,
82
+ "arrival_time_seconds": 61200,
83
+ "departure_time_seconds": 61200,
84
+ "stop": {
85
+ "stop_id": "U815Z1P",
86
+ "stop_lat": 50.062717,
87
+ "stop_lon": 14.3842,
88
+ "stop_name": "Urbanova",
89
+ "zone_id": "P",
90
+ "wheelchair_boarding": 0
91
+ }
92
+ },
93
+ {
94
+ "arrival_time": "17:01:00",
95
+ "departure_time": "17:01:00",
96
+ "shape_dist_traveled": 2.315504,
97
+ "stop_headsign": null,
98
+ "stop_id": "U116Z1P",
99
+ "stop_sequence": 6,
100
+ "arrival_time_seconds": 61260,
101
+ "departure_time_seconds": 61260,
102
+ "stop": {
103
+ "stop_id": "U116Z1P",
104
+ "stop_lat": 50.060677,
105
+ "stop_lon": 14.381,
106
+ "stop_name": "Farkáň",
107
+ "zone_id": "P",
108
+ "wheelchair_boarding": 0
109
+ }
110
+ },
111
+ {
112
+ "arrival_time": "17:02:00",
113
+ "departure_time": "17:02:00",
114
+ "shape_dist_traveled": 2.881882,
115
+ "stop_headsign": null,
116
+ "stop_id": "U396Z3P",
117
+ "stop_sequence": 7,
118
+ "arrival_time_seconds": 61320,
119
+ "departure_time_seconds": 61320,
120
+ "stop": {
121
+ "stop_id": "U396Z3P",
122
+ "stop_lat": 50.058533,
123
+ "stop_lon": 14.374084,
124
+ "stop_name": "U Waltrovky",
125
+ "zone_id": "P",
126
+ "wheelchair_boarding": 0
127
+ }
128
+ }
129
+ ],
130
+ "shapes": [
131
+ {
132
+ "dist": 0,
133
+ "coords": [14.404205, 50.068688]
134
+ },
135
+ {
136
+ "dist": 0.01058,
137
+ "coords": [14.404082, 50.068635]
138
+ },
139
+ {
140
+ "dist": 0.044712,
141
+ "coords": [14.403617, 50.068567]
142
+ },
143
+ {
144
+ "dist": 0.059745,
145
+ "coords": [14.40366, 50.068434]
146
+ },
147
+ {
148
+ "dist": 0.084765,
149
+ "coords": [14.403721, 50.068213]
150
+ },
151
+ {
152
+ "dist": 0.200199,
153
+ "coords": [14.402149, 50.067983]
154
+ },
155
+ {
156
+ "dist": 0.295907,
157
+ "coords": [14.401721, 50.068798]
158
+ },
159
+ {
160
+ "dist": 0.360976,
161
+ "coords": [14.400827, 50.068691]
162
+ },
163
+ {
164
+ "dist": 0.403178,
165
+ "coords": [14.400279, 50.068552]
166
+ },
167
+ {
168
+ "dist": 0.472604,
169
+ "coords": [14.399364, 50.068343]
170
+ },
171
+ {
172
+ "dist": 0.517881,
173
+ "coords": [14.399381, 50.067937]
174
+ },
175
+ {
176
+ "dist": 0.603356,
177
+ "coords": [14.399419, 50.067168]
178
+ },
179
+ {
180
+ "dist": 0.617285,
181
+ "coords": [14.399374, 50.067046]
182
+ },
183
+ {
184
+ "dist": 0.65801,
185
+ "coords": [14.399237, 50.066691]
186
+ },
187
+ {
188
+ "dist": 0.687292,
189
+ "coords": [14.399138, 50.066436]
190
+ },
191
+ {
192
+ "dist": 0.768563,
193
+ "coords": [14.398926, 50.065718]
194
+ },
195
+ {
196
+ "dist": 0.944574,
197
+ "coords": [14.396494, 50.065484]
198
+ },
199
+ {
200
+ "dist": 1.057871,
201
+ "coords": [14.394951, 50.06571]
202
+ },
203
+ {
204
+ "dist": 1.144033,
205
+ "coords": [14.393905, 50.065326]
206
+ },
207
+ {
208
+ "dist": 1.209992,
209
+ "coords": [14.393026, 50.06515]
210
+ },
211
+ {
212
+ "dist": 1.302185,
213
+ "coords": [14.391796, 50.064903]
214
+ },
215
+ {
216
+ "dist": 1.413343,
217
+ "coords": [14.390305, 50.064625]
218
+ },
219
+ {
220
+ "dist": 1.427235,
221
+ "coords": [14.390125, 50.064673]
222
+ },
223
+ {
224
+ "dist": 1.513142,
225
+ "coords": [14.389478, 50.065323]
226
+ },
227
+ {
228
+ "dist": 1.5457,
229
+ "coords": [14.389047, 50.065231]
230
+ },
231
+ {
232
+ "dist": 1.606345,
233
+ "coords": [14.388344, 50.064926]
234
+ },
235
+ {
236
+ "dist": 1.693733,
237
+ "coords": [14.387331, 50.064488]
238
+ },
239
+ {
240
+ "dist": 1.79135,
241
+ "coords": [14.386246, 50.063956]
242
+ },
243
+ {
244
+ "dist": 1.85738,
245
+ "coords": [14.385572, 50.063551]
246
+ },
247
+ {
248
+ "dist": 1.877629,
249
+ "coords": [14.385358, 50.063432]
250
+ },
251
+ {
252
+ "dist": 1.956502,
253
+ "coords": [14.384609, 50.062912]
254
+ },
255
+ {
256
+ "dist": 1.992387,
257
+ "coords": [14.384258, 50.062682]
258
+ },
259
+ {
260
+ "dist": 2.023509,
261
+ "coords": [14.383954, 50.062482]
262
+ },
263
+ {
264
+ "dist": 2.108156,
265
+ "coords": [14.383142, 50.061928]
266
+ },
267
+ {
268
+ "dist": 2.242171,
269
+ "coords": [14.381833, 50.061068]
270
+ },
271
+ {
272
+ "dist": 2.315504,
273
+ "coords": [14.381076, 50.060623]
274
+ },
275
+ {
276
+ "dist": 2.355064,
277
+ "coords": [14.380668, 50.060383]
278
+ },
279
+ {
280
+ "dist": 2.385935,
281
+ "coords": [14.380306, 50.060233]
282
+ },
283
+ {
284
+ "dist": 2.504636,
285
+ "coords": [14.378887, 50.05968]
286
+ },
287
+ {
288
+ "dist": 2.566321,
289
+ "coords": [14.378125, 50.059422]
290
+ },
291
+ {
292
+ "dist": 2.618876,
293
+ "coords": [14.377484, 50.059192]
294
+ },
295
+ {
296
+ "dist": 2.692306,
297
+ "coords": [14.376667, 50.058793]
298
+ },
299
+ {
300
+ "dist": 2.740389,
301
+ "coords": [14.376057, 50.058611]
302
+ },
303
+ {
304
+ "dist": 2.881882,
305
+ "coords": [14.374089, 50.058498]
306
+ }
307
+ ]
308
+ }
@@ -0,0 +1,37 @@
1
+ [
2
+ {
3
+ "sequence": 1,
4
+ "arr_delay": -12,
5
+ "dep_delay": 17
6
+ },
7
+ {
8
+ "sequence": 2,
9
+ "arr_delay": null,
10
+ "dep_delay": 133
11
+ },
12
+ {
13
+ "sequence": 3,
14
+ "arr_delay": 83,
15
+ "dep_delay": 113
16
+ },
17
+ {
18
+ "sequence": 4,
19
+ "arr_delay": 35,
20
+ "dep_delay": 80
21
+ },
22
+ {
23
+ "sequence": 5,
24
+ "arr_delay": 80,
25
+ "dep_delay": 80
26
+ },
27
+ {
28
+ "sequence": 6,
29
+ "arr_delay": 80,
30
+ "dep_delay": 80
31
+ },
32
+ {
33
+ "sequence": 7,
34
+ "arr_delay": 80,
35
+ "dep_delay": 80
36
+ }
37
+ ]
@@ -1,42 +1,50 @@
1
1
  [
2
2
  {
3
- "gtfs_trip_id": "705_735_231002",
3
+ "gtfs_trip_id": "137_2032_240103",
4
4
  "route_type": 3,
5
- "gtfs_route_short_name": "705",
6
- "lat": 49.90276,
7
- "lng": 15.4047,
8
- "bearing": 221,
9
- "delay": null,
10
- "vehicle_id": "service-3-8585",
5
+ "gtfs_route_short_name": "137",
6
+ "lat": 50.06061,
7
+ "lng": 14.38097,
8
+ "bearing": 229,
9
+ "delay": 89,
11
10
  "state_position": "on_track",
11
+ "vehicle_id": "service-3-3927",
12
12
  "detailed_info": {
13
- "origin_route_name": "705",
14
- "shape_id": null,
15
- "run_number": 29,
16
- "trip_headsign": "Nádraží 1",
17
- "shape_dist_traveled": 7.035025,
18
- "last_stop_sequence": 3,
19
- "origin_timestamp": "2024-03-23T14:00:00.000Z"
13
+ "is_wheelchair_accessible": true,
14
+ "origin_route_name": "137",
15
+ "shape_id": "L137V2",
16
+ "run_number": 1,
17
+ "trip_headsign": "U Waltrovky",
18
+ "shape_dist_traveled": 2.316,
19
+ "last_stop_sequence": 6,
20
+ "origin_timestamp": "2024-02-01T16:02:29.000Z",
21
+ "registration_number": 3927,
22
+ "operator": "DP PRAHA",
23
+ "vehicle_type_id": 3
20
24
  }
21
25
  },
22
26
  {
23
- "gtfs_trip_id": "781_4_231030",
27
+ "gtfs_trip_id": "535_31_231201",
24
28
  "route_type": 3,
25
- "gtfs_route_short_name": "781",
26
- "lat": 49.92452,
27
- "lng": 15.4669,
28
- "bearing": 305,
29
- "delay": 211,
30
- "vehicle_id": "service-3-7630",
29
+ "gtfs_route_short_name": "535",
30
+ "lat": 50.02284,
31
+ "lng": 15.21076,
32
+ "bearing": 149,
33
+ "delay": 11,
31
34
  "state_position": "on_track",
35
+ "vehicle_id": "service-3-8650",
32
36
  "detailed_info": {
33
- "origin_route_name": "781",
34
- "shape_id": null,
35
- "run_number": 19,
36
- "trip_headsign": "Nádraží 2",
37
- "shape_dist_traveled": 8.035025,
38
- "last_stop_sequence": 4,
39
- "origin_timestamp": "2024-03-23T14:00:20.000Z"
37
+ "is_wheelchair_accessible": true,
38
+ "origin_route_name": "421",
39
+ "shape_id": "L535V4",
40
+ "run_number": 69,
41
+ "trip_headsign": "Kolín,nádraží",
42
+ "shape_dist_traveled": 27.545,
43
+ "last_stop_sequence": 20,
44
+ "origin_timestamp": "2024-02-01T16:02:59.000Z",
45
+ "registration_number": 8650,
46
+ "operator": "OAD KOLÍN (Nymburk)",
47
+ "vehicle_type_id": 4
40
48
  }
41
49
  }
42
50
  ]
@@ -0,0 +1,7 @@
1
+ import { IPresetLogRepository } from "../../ropid-gtfs/workers/presets/data-access/interfaces/IPresetLogRepository";
2
+ import { AbstractRunRepository } from "../../vehicle-positions/workers/runs/data-access/AbstractRunRepository";
3
+ import { RepositoryTableName } from "../workers/constants/RepositoryTableNameEnum";
4
+ export declare class SelectRepositoryFactory {
5
+ select(repo: RepositoryTableName): IPresetLogRepository | AbstractRunRepository;
6
+ getColumnNameByRepositoryName(repo: RepositoryTableName): "" | "msg_last_timestamp" | "message_timestamp" | "vehicle_timestamp";
7
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SelectRepositoryFactory = void 0;
4
+ const Di_1 = require("../../ioc/Di");
5
+ const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
6
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
7
+ const CommonRunsRepository_1 = require("../../vehicle-positions/workers/runs/data-access/CommonRunsRepository");
8
+ const MetroRunsMessagesRepository_1 = require("../../vehicle-positions/workers/runs/data-access/MetroRunsMessagesRepository");
9
+ const RegionalBusRunsMessagesRepository_1 = require("../../vehicle-positions/workers/runs/data-access/RegionalBusRunsMessagesRepository");
10
+ const DescriptorRepository_1 = require("../../vehicle-positions/workers/vehicle-descriptors/data-access/DescriptorRepository");
11
+ const PositionsRepository_1 = require("../../vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository");
12
+ const TripsRepository_1 = require("../../vehicle-positions/workers/vehicle-positions/data-access/TripsRepository");
13
+ const RepositoryTableNameEnum_1 = require("../workers/constants/RepositoryTableNameEnum");
14
+ class SelectRepositoryFactory {
15
+ select(repo) {
16
+ switch (repo) {
17
+ case RepositoryTableNameEnum_1.RepositoryTableName.TRIPS:
18
+ return new TripsRepository_1.TripsRepository();
19
+ case RepositoryTableNameEnum_1.RepositoryTableName.POSITIONS:
20
+ return new PositionsRepository_1.PositionsRepository();
21
+ case RepositoryTableNameEnum_1.RepositoryTableName.DESCRIPTOR:
22
+ return new DescriptorRepository_1.DescriptorRepository();
23
+ case RepositoryTableNameEnum_1.RepositoryTableName.METRO:
24
+ return new MetroRunsMessagesRepository_1.MetroRunsMessagesRepository();
25
+ case RepositoryTableNameEnum_1.RepositoryTableName.REGIONAL_BUS:
26
+ return new RegionalBusRunsMessagesRepository_1.RegionalBusRunsMessagesRepository();
27
+ case RepositoryTableNameEnum_1.RepositoryTableName.COMMON_RUNS:
28
+ return new CommonRunsRepository_1.CommonRunsRepository();
29
+ case RepositoryTableNameEnum_1.RepositoryTableName.LOGS:
30
+ return Di_1.PidContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.PresetLogRepository);
31
+ default:
32
+ throw new golemio_errors_1.GeneralError("Repository type undefined.");
33
+ }
34
+ }
35
+ getColumnNameByRepositoryName(repo) {
36
+ switch (repo) {
37
+ case RepositoryTableNameEnum_1.RepositoryTableName.METRO:
38
+ return "message_timestamp";
39
+ case RepositoryTableNameEnum_1.RepositoryTableName.REGIONAL_BUS:
40
+ return "vehicle_timestamp";
41
+ case RepositoryTableNameEnum_1.RepositoryTableName.COMMON_RUNS:
42
+ return "msg_last_timestamp";
43
+ default:
44
+ return "";
45
+ }
46
+ }
47
+ }
48
+ exports.SelectRepositoryFactory = SelectRepositoryFactory;
49
+ //# sourceMappingURL=SelectRepositoryFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectRepositoryFactory.js","sourceRoot":"","sources":["../../../../src/integration-engine/data-retention/helpers/SelectRepositoryFactory.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAC1C,yEAAoE;AAGpE,6EAAwE;AAExE,gHAA6G;AAC7G,8HAA2H;AAC3H,0IAAuI;AACvI,+HAA4H;AAC5H,2HAAwH;AACxH,mHAAgH;AAChH,0FAAmF;AAEnF,MAAa,uBAAuB;IACzB,MAAM,CAAC,IAAyB;QACnC,QAAQ,IAAI,EAAE;YACV,KAAK,6CAAmB,CAAC,KAAK;gBAC1B,OAAO,IAAI,iCAAe,EAAE,CAAC;YACjC,KAAK,6CAAmB,CAAC,SAAS;gBAC9B,OAAO,IAAI,yCAAmB,EAAE,CAAC;YACrC,KAAK,6CAAmB,CAAC,UAAU;gBAC/B,OAAO,IAAI,2CAAoB,EAAE,CAAC;YACtC,KAAK,6CAAmB,CAAC,KAAK;gBAC1B,OAAO,IAAI,yDAA2B,EAAE,CAAC;YAC7C,KAAK,6CAAmB,CAAC,YAAY;gBACjC,OAAO,IAAI,qEAAiC,EAAE,CAAC;YACnD,KAAK,6CAAmB,CAAC,WAAW;gBAChC,OAAO,IAAI,2CAAoB,EAAE,CAAC;YACtC,KAAK,6CAAmB,CAAC,IAAI;gBACzB,OAAO,iBAAY,CAAC,OAAO,CAAuB,2CAAoB,CAAC,mBAAmB,CAAC,CAAC;YAChG;gBACI,MAAM,IAAI,6BAAY,CAAC,4BAA4B,CAAC,CAAC;SAC5D;IACL,CAAC;IAEM,6BAA6B,CAAC,IAAyB;QAC1D,QAAQ,IAAI,EAAE;YACV,KAAK,6CAAmB,CAAC,KAAK;gBAC1B,OAAO,mBAAmB,CAAC;YAC/B,KAAK,6CAAmB,CAAC,YAAY;gBACjC,OAAO,mBAAmB,CAAC;YAC/B,KAAK,6CAAmB,CAAC,WAAW;gBAChC,OAAO,oBAAoB,CAAC;YAChC;gBACI,OAAO,EAAE,CAAC;SACjB;IACL,CAAC;CACJ;AAlCD,0DAkCC"}
@@ -5,6 +5,7 @@ const Di_1 = require("../ioc/Di");
5
5
  const RetentionContainerToken_1 = require("../ioc/RetentionContainerToken");
6
6
  const WorkerName_1 = require("./constants/WorkerName");
7
7
  const workers_1 = require("@golemio/core/dist/integration-engine/workers");
8
+ const DeleteDataTask_1 = require("./tasks/DeleteDataTask");
8
9
  class DataRetentionWorker extends workers_1.AbstractWorker {
9
10
  constructor() {
10
11
  super();
@@ -15,6 +16,7 @@ class DataRetentionWorker extends workers_1.AbstractWorker {
15
16
  };
16
17
  // Register tasks
17
18
  this.registerTask(Di_1.RetentionContainer.resolve(RetentionContainerToken_1.RetentionContainerToken.TableStorageRetentionTask));
19
+ this.registerTask(new DeleteDataTask_1.DeleteDataTask(this.getQueuePrefix()));
18
20
  }
19
21
  }
20
22
  exports.DataRetentionWorker = DataRetentionWorker;
@@ -1 +1 @@
1
- {"version":3,"file":"DataRetentionWorker.js","sourceRoot":"","sources":["../../../../src/integration-engine/data-retention/workers/DataRetentionWorker.ts"],"names":[],"mappings":";;;AAAA,kCAA+D;AAC/D,4EAAyF;AACzF,uDAA8E;AAG9E,2EAA+E;AAE/E,MAAa,mBAAoB,SAAQ,wBAAc;IAGnD;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,wBAAW,CAAC;QAWtB,iBAAY,GAAG,CAAC,IAAuB,EAAQ,EAAE;YACpD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QATE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CAA4B,iDAAuB,CAAC,yBAAyB,CAAC,CAC3G,CAAC;IACN,CAAC;CAMJ;AAhBD,kDAgBC"}
1
+ {"version":3,"file":"DataRetentionWorker.js","sourceRoot":"","sources":["../../../../src/integration-engine/data-retention/workers/DataRetentionWorker.ts"],"names":[],"mappings":";;;AAAA,kCAA+D;AAC/D,4EAAyF;AACzF,uDAA8E;AAG9E,2EAA+E;AAC/E,2DAAiF;AAEjF,MAAa,mBAAoB,SAAQ,wBAAc;IAGnD;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,wBAAW,CAAC;QAYtB,iBAAY,GAAG,CAAC,IAAuB,EAAQ,EAAE;YACpD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAVE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CACb,uBAAkB,CAAC,OAAO,CAA4B,iDAAuB,CAAC,yBAAyB,CAAC,CAC3G,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,+BAAc,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;CAMJ;AAjBD,kDAiBC"}
@@ -0,0 +1,9 @@
1
+ export declare enum RepositoryTableName {
2
+ TRIPS = "TripsRepository",
3
+ POSITIONS = "PositionsRepository",
4
+ DESCRIPTOR = "DescriptorRepository",
5
+ METRO = "MetroRunsMessagesRepository",
6
+ REGIONAL_BUS = "RegionalBusRunsMessagesRepository",
7
+ COMMON_RUNS = "CommonRunsRepository",
8
+ LOGS = "PresetLogRepository"
9
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RepositoryTableName = void 0;
4
+ var RepositoryTableName;
5
+ (function (RepositoryTableName) {
6
+ RepositoryTableName["TRIPS"] = "TripsRepository";
7
+ RepositoryTableName["POSITIONS"] = "PositionsRepository";
8
+ RepositoryTableName["DESCRIPTOR"] = "DescriptorRepository";
9
+ RepositoryTableName["METRO"] = "MetroRunsMessagesRepository";
10
+ RepositoryTableName["REGIONAL_BUS"] = "RegionalBusRunsMessagesRepository";
11
+ RepositoryTableName["COMMON_RUNS"] = "CommonRunsRepository";
12
+ RepositoryTableName["LOGS"] = "PresetLogRepository";
13
+ })(RepositoryTableName || (exports.RepositoryTableName = RepositoryTableName = {}));
14
+ //# sourceMappingURL=RepositoryTableNameEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RepositoryTableNameEnum.js","sourceRoot":"","sources":["../../../../../src/integration-engine/data-retention/workers/constants/RepositoryTableNameEnum.ts"],"names":[],"mappings":";;;AAAA,IAAY,mBAQX;AARD,WAAY,mBAAmB;IAC3B,gDAAyB,CAAA;IACzB,wDAAiC,CAAA;IACjC,0DAAmC,CAAA;IACnC,4DAAqC,CAAA;IACrC,yEAAkD,CAAA;IAClD,2DAAoC,CAAA;IACpC,mDAA4B,CAAA;AAChC,CAAC,EARW,mBAAmB,mCAAnB,mBAAmB,QAQ9B"}
@@ -1,12 +1,11 @@
1
- import { IDataDeletionParams } from "../../../../shared/interfaces/IDataDeletionParams";
2
- import { DataDeletionValidationSchema } from "../../../../shared/schema/DataDeletionSchema";
1
+ import { IDataDeletionParams } from "../../../shared/interfaces/IDataDeletionParams";
2
+ import { DataDeletionValidationSchema } from "../../../shared/schema/DataDeletionSchema";
3
3
  import { AbstractTask } from "@golemio/core/dist/integration-engine/workers";
4
4
  export declare class DeleteDataTask extends AbstractTask<IDataDeletionParams> {
5
5
  readonly queueName = "deleteData";
6
6
  readonly queueTtl: number;
7
7
  readonly schema: typeof DataDeletionValidationSchema;
8
- private readonly tripsRepository;
9
- private readonly positionsRepository;
8
+ private readonly selectRepositoryFactory;
10
9
  constructor(queuePrefix: string);
11
10
  protected execute(data: IDataDeletionParams): Promise<void>;
12
11
  }
@@ -10,23 +10,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DeleteDataTask = void 0;
13
- const DataDeletionSchema_1 = require("../../../../shared/schema/DataDeletionSchema");
13
+ const DataDeletionSchema_1 = require("../../../shared/schema/DataDeletionSchema");
14
14
  const workers_1 = require("@golemio/core/dist/integration-engine/workers");
15
- const PositionsRepository_1 = require("../data-access/PositionsRepository");
16
- const TripsRepository_1 = require("../data-access/TripsRepository");
15
+ const SelectRepositoryFactory_1 = require("../../helpers/SelectRepositoryFactory");
17
16
  class DeleteDataTask extends workers_1.AbstractTask {
18
17
  constructor(queuePrefix) {
19
18
  super(queuePrefix);
20
19
  this.queueName = "deleteData";
21
- this.queueTtl = 29 * 60 * 1000; // 29 minutes
20
+ this.queueTtl = 15 * 60 * 1000; // 15 minutes
22
21
  this.schema = DataDeletionSchema_1.DataDeletionValidationSchema;
23
- this.tripsRepository = new TripsRepository_1.TripsRepository();
24
- this.positionsRepository = new PositionsRepository_1.PositionsRepository();
22
+ this.selectRepositoryFactory = new SelectRepositoryFactory_1.SelectRepositoryFactory();
25
23
  }
26
24
  execute(data) {
27
25
  return __awaiter(this, void 0, void 0, function* () {
28
- yield this.tripsRepository.deleteNHoursOldData(data.targetHours);
29
- yield this.positionsRepository.deleteNHoursOldData(data.targetHours);
26
+ const repository = yield this.selectRepositoryFactory.select(data.repoName);
27
+ const columnName = yield this.selectRepositoryFactory.getColumnNameByRepositoryName(data.repoName);
28
+ yield repository.deleteNHoursOldData(data.targetHours, columnName);
30
29
  });
31
30
  }
32
31
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteDataTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/data-retention/workers/tasks/DeleteDataTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,kFAAoF;AACpF,2EAA6E;AAC7E,mFAAgF;AAEhF,MAAa,cAAe,SAAQ,sBAAiC;IAMjE,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QANP,cAAS,GAAG,YAAY,CAAC;QACzB,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;QACxC,WAAM,GAAG,iDAA4B,CAAC;QAKlD,IAAI,CAAC,uBAAuB,GAAG,IAAI,iDAAuB,EAAE,CAAC;IACjE,CAAC;IAEe,OAAO,CAAC,IAAyB;;YAC7C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnG,MAAM,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACvE,CAAC;KAAA;CACJ;AAhBD,wCAgBC"}
@@ -47,7 +47,7 @@ class RopidGTFSTripsModel extends models_1.PostgresModel {
47
47
  model: this.modelGTFSStopTimes.sequelizeModel,
48
48
  include: [
49
49
  {
50
- attributes: ["stop_id", "stop_lat", "stop_lon", "stop_name", "zone_id"],
50
+ attributes: ["stop_id", "stop_lat", "stop_lon", "stop_name", "zone_id", "wheelchair_boarding"],
51
51
  as: "stop",
52
52
  model: this.modelGTFSStops.sequelizeModel,
53
53
  required: true,
@@ -1 +1 @@
1
- {"version":3,"file":"RopidGTFSTripsModel.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGTFSTripsModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RopidGTFSTripsModel.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGTFSTripsModel.ts"],"names":[],"mappings":"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"}