@golemio/pid 2.11.7-dev.1164429811 → 2.11.7-dev.1168947446
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.
- package/db/example/00_clear_test_data.sql +1 -0
- package/db/example/18_train_trip_with_cis_platform_code.sql +57 -0
- package/db/migrations/postgresql/20240205151434-cis-platform-code.js +53 -0
- package/db/migrations/postgresql/sqls/20240205151434-cis-platform-code-down.sql +341 -0
- package/db/migrations/postgresql/sqls/20240205151434-cis-platform-code-up.sql +382 -0
- package/dist/integration-engine/data-retention/helpers/SelectRepositoryFactory.d.ts +6 -0
- package/dist/integration-engine/data-retention/helpers/SelectRepositoryFactory.js +45 -0
- package/dist/integration-engine/data-retention/helpers/SelectRepositoryFactory.js.map +1 -0
- package/dist/integration-engine/data-retention/workers/DataRetentionWorker.js +2 -0
- package/dist/integration-engine/data-retention/workers/DataRetentionWorker.js.map +1 -1
- package/dist/integration-engine/data-retention/workers/constants/RepositoryTableNameEnum.d.ts +8 -0
- package/dist/integration-engine/data-retention/workers/constants/RepositoryTableNameEnum.js +13 -0
- package/dist/integration-engine/data-retention/workers/constants/RepositoryTableNameEnum.js.map +1 -0
- package/dist/integration-engine/{vehicle-positions/workers/vehicle-positions → data-retention/workers}/tasks/DeleteDataTask.d.ts +3 -4
- package/dist/integration-engine/{vehicle-positions/workers/vehicle-positions → data-retention/workers}/tasks/DeleteDataTask.js +7 -8
- package/dist/integration-engine/data-retention/workers/tasks/DeleteDataTask.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js +3 -1
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map +1 -1
- package/dist/integration-engine/shared/interfaces/IDataDeletionParams.d.ts +2 -0
- package/dist/integration-engine/shared/schema/DataDeletionSchema.d.ts +2 -0
- package/dist/integration-engine/shared/schema/DataDeletionSchema.js +6 -0
- package/dist/integration-engine/shared/schema/DataDeletionSchema.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/Di.js +0 -2
- package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js +10 -4
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/RunsWorker.js +0 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/RunsWorker.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/DescriptorWorker.js +0 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/DescriptorWorker.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/VPWorker.js +0 -2
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/VPWorker.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/CisStopRepository.d.ts +4 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/CisStopRepository.js +19 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/CisStopRepository.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js +9 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/interfaces/TripRepositoryInterfaces.d.ts +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/mpv-net/MpvStopParser.d.ts +10 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/mpv-net/MpvStopParser.js +20 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/mpv-net/MpvStopParser.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/MpvMessageInterfaces.d.ts +0 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/TransformationInterfaces.d.ts +3 -17
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.d.ts +2 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js +11 -7
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/{PositionsTransformation.d.ts → MpvMessageTransformation.d.ts} +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/{PositionsTransformation.js → MpvMessageTransformation.js} +15 -55
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/MpvMessageTransformation.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PublicApiTripTransformation.js +2 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PublicApiTripTransformation.js.map +1 -1
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.d.ts +7 -0
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js +13 -1
- package/dist/output-gateway/pid/helpers/DepartureBoardMapper.js.map +1 -1
- package/dist/output-gateway/pid/index.d.ts +1 -0
- package/dist/output-gateway/pid/index.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/interfaces/IStopDto.d.ts +3 -0
- package/dist/schema-definitions/ropid-gtfs/models/StopDto.d.ts +3 -2
- package/dist/schema-definitions/ropid-gtfs/models/StopDto.js +7 -0
- package/dist/schema-definitions/ropid-gtfs/models/StopDto.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/StopTimesDto.d.ts +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/StopTimesDto.js +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/StopTimesDto.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.d.ts +1 -0
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.js +4 -0
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/interfaces/IDeparturesModel.d.ts +1 -0
- package/dist/schema-definitions/vehicle-positions/models/CisStopModel.d.ts +11 -0
- package/dist/schema-definitions/vehicle-positions/models/CisStopModel.js +41 -0
- package/dist/schema-definitions/vehicle-positions/models/CisStopModel.js.map +1 -0
- package/dist/schema-definitions/vehicle-positions/models/VPTripsModel.js.map +1 -1
- package/dist/schema-definitions/vehicle-positions/models/interfaces/ICisStopDto.d.ts +5 -0
- package/dist/schema-definitions/vehicle-positions/models/interfaces/ICisStopDto.js +3 -0
- package/dist/schema-definitions/vehicle-positions/models/interfaces/ICisStopDto.js.map +1 -0
- package/dist/schema-definitions/vehicle-positions/models/interfaces/IGtfsRtTripDto.d.ts +2 -0
- package/dist/schema-definitions/vehicle-positions/models/views/StopTimeDelayPredictionModel.d.ts +2 -0
- package/dist/schema-definitions/vehicle-positions/models/views/StopTimeDelayPredictionModel.js +8 -0
- package/dist/schema-definitions/vehicle-positions/models/views/StopTimeDelayPredictionModel.js.map +1 -1
- package/dist/schema-definitions/vehicle-positions/models/views/interfaces/IStopTimeDelayPredictionDto.d.ts +2 -0
- package/docs/assets/pid_vp_cis_erd.jpg +0 -0
- package/docs/implementation_documentation.md +13 -47
- package/package.json +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/DeleteDataTask.d.ts +0 -13
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/DeleteDataTask.js +0 -37
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/DeleteDataTask.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/tasks/DeleteDataTask.d.ts +0 -12
- package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/tasks/DeleteDataTask.js +0 -50
- package/dist/integration-engine/vehicle-positions/workers/vehicle-descriptors/tasks/DeleteDataTask.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/DeleteDataTask.js.map +0 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PositionsTransformation.js.map +0 -1
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
alter table ropidgtfs_stops add column computed_cis_stop_id text generated always as (asw_node_id::text || '/' || asw_stop_id::text) stored;
|
|
2
|
+
alter table ropidgtfs_precomputed_departures add column cis_stop_group_id int;
|
|
3
|
+
|
|
4
|
+
-- update ropidgtfs_preparetmptables - add computed column computed_cis_stop_id
|
|
5
|
+
CREATE OR REPLACE PROCEDURE ropidgtfs_preparetmptables()
|
|
6
|
+
LANGUAGE plpgsql
|
|
7
|
+
SET search_path from CURRENT
|
|
8
|
+
AS $procedure$
|
|
9
|
+
begin
|
|
10
|
+
CALL ropidgtfs_cleanTmpTables();
|
|
11
|
+
CALL ropidgtfs_cleanOldTables();
|
|
12
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_agency');
|
|
13
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_calendar');
|
|
14
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_calendar_dates');
|
|
15
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_shapes');
|
|
16
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_stop_times');
|
|
17
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_stops');
|
|
18
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_routes');
|
|
19
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_route_sub_agencies');
|
|
20
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_trips');
|
|
21
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_cis_stops');
|
|
22
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_cis_stop_groups');
|
|
23
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_run_numbers');
|
|
24
|
+
CALL ropidgtfs_prepareTmpTable('ropidgtfs_ois');
|
|
25
|
+
alter table ropidgtfs_stop_times_tmp drop computed_dwell_time_seconds;
|
|
26
|
+
alter table ropidgtfs_stop_times_tmp add computed_dwell_time_seconds int2 NOT NULL GENERATED ALWAYS AS (calculate_dwell_time_seconds(arrival_time, departure_time)) stored;
|
|
27
|
+
alter table ropidgtfs_stops_tmp drop column computed_cis_stop_id;
|
|
28
|
+
alter table ropidgtfs_stops_tmp add column computed_cis_stop_id text generated always as (asw_node_id::text || '/' || asw_stop_id::text) stored;
|
|
29
|
+
end
|
|
30
|
+
$procedure$
|
|
31
|
+
;
|
|
32
|
+
|
|
33
|
+
-- new table for storing cis stops with real-time data
|
|
34
|
+
create table vehiclepositions_cis_stops (
|
|
35
|
+
rt_trip_id varchar(255) not null,
|
|
36
|
+
cis_stop_group_id int not null,
|
|
37
|
+
cis_stop_platform_code varchar(15) null,
|
|
38
|
+
|
|
39
|
+
-- Audit fields
|
|
40
|
+
create_batch_id bigint,
|
|
41
|
+
created_at timestamp with time zone,
|
|
42
|
+
created_by character varying(150),
|
|
43
|
+
update_batch_id bigint,
|
|
44
|
+
updated_at timestamp with time zone,
|
|
45
|
+
updated_by character varying(150),
|
|
46
|
+
|
|
47
|
+
constraint vehiclepositions_cis_stops_pkey primary key (rt_trip_id, cis_stop_group_id)
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
-- update get_departures - add column cis_stop_platform_code
|
|
52
|
+
drop function get_departures;
|
|
53
|
+
create function get_departures (
|
|
54
|
+
stopsIds varchar,
|
|
55
|
+
mode int,
|
|
56
|
+
dateDepartureBetweenStart timestamptz,
|
|
57
|
+
dateDepartureBetweenEnd timestamptz,
|
|
58
|
+
isNegativeMinutesBefore int,
|
|
59
|
+
dateCanceledDepartureBetweenStart timestamptz,
|
|
60
|
+
dateCanceledDepartureBetweenEnd timestamptz,
|
|
61
|
+
airconditioninfoenabled int
|
|
62
|
+
)
|
|
63
|
+
returns table (
|
|
64
|
+
departure_datetime_real timestamptz,
|
|
65
|
+
arrival_datetime_real timestamptz,
|
|
66
|
+
stop_sequence int2,
|
|
67
|
+
stop_headsign varchar(70),
|
|
68
|
+
arrival_datetime timestamptz,
|
|
69
|
+
departure_datetime timestamptz,
|
|
70
|
+
stop_id varchar(25),
|
|
71
|
+
platform_code varchar(10),
|
|
72
|
+
wheelchair_boarding int2,
|
|
73
|
+
min_stop_sequence int2,
|
|
74
|
+
max_stop_sequence int2,
|
|
75
|
+
trip_id varchar(50),
|
|
76
|
+
trip_headsign varchar(100),
|
|
77
|
+
trip_short_name varchar(30),
|
|
78
|
+
wheelchair_accessible int2,
|
|
79
|
+
route_short_name varchar(50),
|
|
80
|
+
route_type int2,
|
|
81
|
+
route_id varchar(20),
|
|
82
|
+
is_night bpchar(1),
|
|
83
|
+
is_regional bpchar(1),
|
|
84
|
+
is_substitute_transport bpchar(1),
|
|
85
|
+
next_stop_id varchar(30),
|
|
86
|
+
delay_seconds int4,
|
|
87
|
+
real_wheelchair_accessible bool,
|
|
88
|
+
is_canceled bool,
|
|
89
|
+
"trip.gtfs_trip_short_name" varchar(255),
|
|
90
|
+
"trip.gtfs_date" date,
|
|
91
|
+
"trip.internal_route_name" varchar(50),
|
|
92
|
+
"trip.internal_run_number" int4,
|
|
93
|
+
"trip.last_position.last_stop_id" varchar(255),
|
|
94
|
+
"trip.last_position.last_stop_sequence" int4,
|
|
95
|
+
"trip.last_position.last_stop_name" varchar(255),
|
|
96
|
+
"trip.last_position.this_stop_sequence" int4,
|
|
97
|
+
"trip.cis_stop_platform_code" varchar(15),
|
|
98
|
+
"trip.vehicle_descriptor.is_air_conditioned" bool,
|
|
99
|
+
delay_minutes int4,
|
|
100
|
+
is_delay_available bool
|
|
101
|
+
)
|
|
102
|
+
language SQL
|
|
103
|
+
set search_path from current
|
|
104
|
+
as $$
|
|
105
|
+
select
|
|
106
|
+
departure_boards_detailed."computed.departure_datetime_real",
|
|
107
|
+
departure_boards_detailed."computed.arrival_datetime_real",
|
|
108
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence",
|
|
109
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_headsign",
|
|
110
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.arrival_datetime",
|
|
111
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.departure_datetime",
|
|
112
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id",
|
|
113
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.platform_code",
|
|
114
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_boarding",
|
|
115
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence",
|
|
116
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence",
|
|
117
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_id",
|
|
118
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_headsign",
|
|
119
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.trip_short_name",
|
|
120
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_accessible",
|
|
121
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_short_name",
|
|
122
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_type",
|
|
123
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.route_id",
|
|
124
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_night",
|
|
125
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_regional",
|
|
126
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.is_substitute_transport",
|
|
127
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.next_stop_id",
|
|
128
|
+
departure_boards_detailed."delay_seconds",
|
|
129
|
+
departure_boards_detailed."real_wheelchair_accessible",
|
|
130
|
+
departure_boards_detailed."is_canceled",
|
|
131
|
+
departure_boards_detailed."trip.gtfs_trip_short_name",
|
|
132
|
+
departure_boards_detailed."trip.gtfs_date",
|
|
133
|
+
departure_boards_detailed."trip.internal_route_name",
|
|
134
|
+
departure_boards_detailed."trip.internal_run_number",
|
|
135
|
+
departure_boards_detailed."trip.last_position.last_stop_id",
|
|
136
|
+
departure_boards_detailed."trip.last_position.last_stop_sequence",
|
|
137
|
+
departure_boards_detailed."trip.last_position.last_stop_name",
|
|
138
|
+
departure_boards_detailed."trip.last_position.this_stop_sequence",
|
|
139
|
+
departure_boards_detailed.cis_stop_platform_code as "trip.cis_stop_platform_code",
|
|
140
|
+
case when airconditioninfoenabled = 1 then departure_boards_detailed."trip.vehicle_descriptor.is_air_conditioned" else NULL end,
|
|
141
|
+
TRUNC(departure_boards_detailed."trip.last_position.delay"::DECIMAL / 60, 0)::int as "delay_minutes",
|
|
142
|
+
case when departure_boards_detailed."trip.last_position.delay" is null then false else true end as "is_delay_available"
|
|
143
|
+
from (
|
|
144
|
+
select
|
|
145
|
+
("departure_datetime"
|
|
146
|
+
+ MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end))
|
|
147
|
+
- case when (MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)) > MAKE_INTERVAL())
|
|
148
|
+
then least (
|
|
149
|
+
MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)),
|
|
150
|
+
("departure_datetime" - "arrival_datetime")::interval
|
|
151
|
+
)
|
|
152
|
+
else MAKE_INTERVAL()
|
|
153
|
+
end
|
|
154
|
+
) "computed.departure_datetime_real",
|
|
155
|
+
"arrival_datetime" + MAKE_INTERVAL(secs => (
|
|
156
|
+
CASE WHEN "trip.last_position.delay" IS NULL THEN 0 ELSE "trip.last_position.delay" end
|
|
157
|
+
)) "computed.arrival_datetime_real",
|
|
158
|
+
"ropidgtfs_precomputed_departures"."stop_sequence" as "ropidgtfs_precomputed_departures.stop_sequence",
|
|
159
|
+
"ropidgtfs_precomputed_departures"."stop_headsign" as "ropidgtfs_precomputed_departures.stop_headsign",
|
|
160
|
+
"ropidgtfs_precomputed_departures"."pickup_type" as "ropidgtfs_precomputed_departures.pickup_type",
|
|
161
|
+
"ropidgtfs_precomputed_departures"."drop_off_type" as "ropidgtfs_precomputed_departures.drop_off_type",
|
|
162
|
+
"ropidgtfs_precomputed_departures"."arrival_time" as "ropidgtfs_precomputed_departures.arrival_time",
|
|
163
|
+
"ropidgtfs_precomputed_departures"."arrival_datetime" as "ropidgtfs_precomputed_departures.arrival_datetime",
|
|
164
|
+
"ropidgtfs_precomputed_departures"."departure_time" as "ropidgtfs_precomputed_departures.departure_time",
|
|
165
|
+
"ropidgtfs_precomputed_departures"."departure_datetime" as "ropidgtfs_precomputed_departures.departure_datetime",
|
|
166
|
+
"ropidgtfs_precomputed_departures"."stop_id" as "ropidgtfs_precomputed_departures.stop_id",
|
|
167
|
+
"ropidgtfs_precomputed_departures"."stop_name" as "ropidgtfs_precomputed_departures.stop_name",
|
|
168
|
+
"ropidgtfs_precomputed_departures"."platform_code" as "ropidgtfs_precomputed_departures.platform_code",
|
|
169
|
+
"ropidgtfs_precomputed_departures"."wheelchair_boarding" as "ropidgtfs_precomputed_departures.wheelchair_boarding",
|
|
170
|
+
"ropidgtfs_precomputed_departures"."min_stop_sequence" as "ropidgtfs_precomputed_departures.min_stop_sequence",
|
|
171
|
+
"ropidgtfs_precomputed_departures"."max_stop_sequence" as "ropidgtfs_precomputed_departures.max_stop_sequence",
|
|
172
|
+
"ropidgtfs_precomputed_departures"."trip_id" as "ropidgtfs_precomputed_departures.trip_id",
|
|
173
|
+
"ropidgtfs_precomputed_departures"."trip_headsign" as "ropidgtfs_precomputed_departures.trip_headsign",
|
|
174
|
+
"ropidgtfs_precomputed_departures"."trip_short_name" as "ropidgtfs_precomputed_departures.trip_short_name",
|
|
175
|
+
"ropidgtfs_precomputed_departures"."wheelchair_accessible" as "ropidgtfs_precomputed_departures.wheelchair_accessible",
|
|
176
|
+
"ropidgtfs_precomputed_departures"."service_id" as "ropidgtfs_precomputed_departures.service_id",
|
|
177
|
+
"ropidgtfs_precomputed_departures"."date" as "ropidgtfs_precomputed_departures.date",
|
|
178
|
+
"ropidgtfs_precomputed_departures"."route_short_name" as "ropidgtfs_precomputed_departures.route_short_name",
|
|
179
|
+
"ropidgtfs_precomputed_departures"."route_type" as "ropidgtfs_precomputed_departures.route_type",
|
|
180
|
+
"ropidgtfs_precomputed_departures"."route_id" as "ropidgtfs_precomputed_departures.route_id",
|
|
181
|
+
"ropidgtfs_precomputed_departures"."is_night" as "ropidgtfs_precomputed_departures.is_night",
|
|
182
|
+
"ropidgtfs_precomputed_departures"."is_regional" as "ropidgtfs_precomputed_departures.is_regional",
|
|
183
|
+
"ropidgtfs_precomputed_departures"."is_substitute_transport" as "ropidgtfs_precomputed_departures.is_substitute_transport",
|
|
184
|
+
"ropidgtfs_precomputed_departures"."next_stop_sequence" as "ropidgtfs_precomputed_departures.next_stop_sequence",
|
|
185
|
+
"ropidgtfs_precomputed_departures"."next_stop_id" as "ropidgtfs_precomputed_departures.next_stop_id",
|
|
186
|
+
"ropidgtfs_precomputed_departures"."last_stop_sequence" as "ropidgtfs_precomputed_departures.last_stop_sequence",
|
|
187
|
+
"ropidgtfs_precomputed_departures"."last_stop_id" as "ropidgtfs_precomputed_departures.last_stop_id",
|
|
188
|
+
x.*,
|
|
189
|
+
cis_stop.cis_stop_platform_code as "cis_stop_platform_code"
|
|
190
|
+
from
|
|
191
|
+
"ropidgtfs_precomputed_departures" as "ropidgtfs_precomputed_departures"
|
|
192
|
+
left outer join v_vehiclepositions_trip_position_vehicle_info as x on
|
|
193
|
+
"ropidgtfs_precomputed_departures"."trip_id" = x."trip.gtfs_trip_id"
|
|
194
|
+
left join vehiclepositions_cis_stops as cis_stop on
|
|
195
|
+
cis_stop.rt_trip_id = x."trip.id"
|
|
196
|
+
and cis_stop.cis_stop_group_id = "ropidgtfs_precomputed_departures"."cis_stop_group_id"
|
|
197
|
+
) departure_boards_detailed
|
|
198
|
+
where
|
|
199
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id" = ANY(STRING_TO_ARRAY(stopsIds,','))
|
|
200
|
+
and (
|
|
201
|
+
(
|
|
202
|
+
(
|
|
203
|
+
(mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
|
|
204
|
+
or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
|
|
205
|
+
)
|
|
206
|
+
and
|
|
207
|
+
(
|
|
208
|
+
0 = isNegativeMinutesBefore
|
|
209
|
+
or ( -- pro záporné minutes before
|
|
210
|
+
departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" >= departure_boards_detailed."trip.last_position.last_stop_sequence"
|
|
211
|
+
or departure_boards_detailed."trip.last_position.last_stop_sequence" IS null
|
|
212
|
+
)
|
|
213
|
+
)
|
|
214
|
+
|
|
215
|
+
)
|
|
216
|
+
or (
|
|
217
|
+
departure_boards_detailed."trip.is_canceled" = true
|
|
218
|
+
and
|
|
219
|
+
(
|
|
220
|
+
(mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
|
|
221
|
+
or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
|
|
222
|
+
)
|
|
223
|
+
)
|
|
224
|
+
) and
|
|
225
|
+
(
|
|
226
|
+
(mode = 1 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1' and departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" != departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence")) -- mode default/departures
|
|
227
|
+
or (mode=2 and (departure_boards_detailed."ropidgtfs_precomputed_departures.drop_off_type" != '1' and departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" != departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence")) -- mode arrivals
|
|
228
|
+
or (mode=3 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1')) -- mode mixed
|
|
229
|
+
);
|
|
230
|
+
$$;
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
-- update vehiclepositions_data_retention - remove old data from vehiclepositions_cis_stops
|
|
234
|
+
CREATE OR REPLACE PROCEDURE vehiclepositions_data_retention(inout numberOfRows int, in dataRetentionMinutes int)
|
|
235
|
+
LANGUAGE plpgsql
|
|
236
|
+
SET search_path FROM CURRENT
|
|
237
|
+
AS $procedure$
|
|
238
|
+
declare
|
|
239
|
+
idsForDelete varchar(255)[];
|
|
240
|
+
begin
|
|
241
|
+
select array_agg(t.id) from vehiclepositions_trips t
|
|
242
|
+
left join vehiclepositions_positions p on
|
|
243
|
+
p.id = t.last_position_id
|
|
244
|
+
where
|
|
245
|
+
p.valid_to < (NOW() - (dataRetentionMinutes || ' minutes')::interval)
|
|
246
|
+
or (gtfs_trip_id is null and p.created_at < NOW() - (dataRetentionMinutes || ' minutes')::interval) -- entries with valid to is null
|
|
247
|
+
into idsForDelete;
|
|
248
|
+
|
|
249
|
+
INSERT INTO vehiclepositions_trips_history
|
|
250
|
+
select * from vehiclepositions_trips where id = ANY(idsForDelete)
|
|
251
|
+
on conflict do nothing;
|
|
252
|
+
|
|
253
|
+
INSERT INTO vehiclepositions_positions_history
|
|
254
|
+
select * from vehiclepositions_positions where trips_id = ANY(idsForDelete)
|
|
255
|
+
on conflict do nothing;
|
|
256
|
+
|
|
257
|
+
insert into vehiclepositions_stop_times_history (
|
|
258
|
+
rt_trip_id,
|
|
259
|
+
gtfs_date,
|
|
260
|
+
gtfs_trip_id,
|
|
261
|
+
gtfs_direction_id,
|
|
262
|
+
gtfs_route_short_name,
|
|
263
|
+
gtfs_route_type,
|
|
264
|
+
run_number,
|
|
265
|
+
vehicle_registration_number,
|
|
266
|
+
gtfs_stop_id,
|
|
267
|
+
gtfs_stop_sequence,
|
|
268
|
+
current_stop_arrival,
|
|
269
|
+
current_stop_departure,
|
|
270
|
+
current_stop_arr_delay,
|
|
271
|
+
current_stop_dep_delay,
|
|
272
|
+
created_at,
|
|
273
|
+
updated_at,
|
|
274
|
+
origin_route_name
|
|
275
|
+
)
|
|
276
|
+
select
|
|
277
|
+
rt_trip.id,
|
|
278
|
+
rt_trip.gtfs_date,
|
|
279
|
+
rt_trip.gtfs_trip_id,
|
|
280
|
+
rt_trip.gtfs_direction_id,
|
|
281
|
+
rt_trip.gtfs_route_short_name,
|
|
282
|
+
rt_trip.gtfs_route_type,
|
|
283
|
+
rt_trip.run_number,
|
|
284
|
+
rt_trip.vehicle_registration_number,
|
|
285
|
+
stop_time.stop_id,
|
|
286
|
+
stop_time.stop_sequence,
|
|
287
|
+
stop_time.stop_arrival,
|
|
288
|
+
stop_time.stop_departure,
|
|
289
|
+
stop_time.stop_arr_delay,
|
|
290
|
+
stop_time.stop_dep_delay,
|
|
291
|
+
now(),
|
|
292
|
+
now(),
|
|
293
|
+
rt_trip.origin_route_name
|
|
294
|
+
from
|
|
295
|
+
vehiclepositions_trips rt_trip
|
|
296
|
+
join
|
|
297
|
+
v_vehiclepositions_past_stop_times stop_time on stop_time.rt_trip_id = rt_trip.id
|
|
298
|
+
where
|
|
299
|
+
rt_trip.id = ANY(idsForDelete)
|
|
300
|
+
on conflict do nothing;
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
delete from vehiclepositions_positions where trips_id = ANY(idsForDelete);
|
|
304
|
+
delete from vehiclepositions_trips where id = ANY(idsForDelete);
|
|
305
|
+
delete from vehiclepositions_cis_stops where rt_trip_id = ANY(idsForDelete);
|
|
306
|
+
|
|
307
|
+
select array_length(idsForDelete,1) into numberOfRows;
|
|
308
|
+
end;
|
|
309
|
+
$procedure$;
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
-- update v_vehiclepositions_stop_time_delay_prediction - add platform_code and cis_stop_platform_code
|
|
313
|
+
drop view v_vehiclepositions_stop_time_delay_prediction;
|
|
314
|
+
create view v_vehiclepositions_stop_time_delay_prediction as
|
|
315
|
+
with recursive stop_times as (
|
|
316
|
+
select
|
|
317
|
+
vt.id,
|
|
318
|
+
rst.trip_id,
|
|
319
|
+
vt.provider_source_type,
|
|
320
|
+
vp.delay,
|
|
321
|
+
coalesce(vp.last_stop_sequence, 1) as initial_stop_sequence,
|
|
322
|
+
vp.state_position,
|
|
323
|
+
rst.stop_sequence,
|
|
324
|
+
rst.stop_id,
|
|
325
|
+
rs.platform_code,
|
|
326
|
+
vcs.cis_stop_platform_code,
|
|
327
|
+
rst.computed_dwell_time_seconds,
|
|
328
|
+
case when vp.last_stop_sequence is null
|
|
329
|
+
then vp.delay
|
|
330
|
+
else vp.delay_stop_arrival
|
|
331
|
+
end as arrival_delay_seconds,
|
|
332
|
+
case when vp.last_stop_sequence is null
|
|
333
|
+
then predict_delay_seconds(vp.delay, rst.computed_dwell_time_seconds, vt.provider_source_type)
|
|
334
|
+
when vp.state_position = 'at_stop'
|
|
335
|
+
then case when vt.provider_source_type = '1' then greatest(0, vp.delay) else vp.delay end
|
|
336
|
+
else vp.delay_stop_departure
|
|
337
|
+
end as departure_delay_seconds
|
|
338
|
+
from ropidgtfs_stop_times rst
|
|
339
|
+
inner join vehiclepositions_trips vt on vt.gtfs_trip_id = rst.trip_id
|
|
340
|
+
inner join vehiclepositions_positions vp on vp.id = vt.last_position_id
|
|
341
|
+
and (vp.valid_to is null or vp.valid_to >= now())
|
|
342
|
+
left join ropidgtfs_stops rs on rs.stop_id = rst.stop_id
|
|
343
|
+
left join ropidgtfs_cis_stops rcs on rcs.id = rs.computed_cis_stop_id
|
|
344
|
+
left join vehiclepositions_cis_stops vcs on vcs.rt_trip_id = vt.id and vcs.cis_stop_group_id = rcs.cis
|
|
345
|
+
where
|
|
346
|
+
vt.gtfs_trip_id is not null
|
|
347
|
+
and rst.stop_sequence = coalesce(vp.last_stop_sequence, 1)
|
|
348
|
+
union all
|
|
349
|
+
select
|
|
350
|
+
previous_row.id,
|
|
351
|
+
rst.trip_id,
|
|
352
|
+
previous_row.provider_source_type,
|
|
353
|
+
previous_row.delay,
|
|
354
|
+
previous_row.initial_stop_sequence,
|
|
355
|
+
previous_row.state_position,
|
|
356
|
+
rst.stop_sequence,
|
|
357
|
+
rst.stop_id,
|
|
358
|
+
rs.platform_code,
|
|
359
|
+
vcs.cis_stop_platform_code,
|
|
360
|
+
rst.computed_dwell_time_seconds,
|
|
361
|
+
case when rst.stop_sequence - previous_row.initial_stop_sequence = 1 and previous_row.state_position != 'at_stop'
|
|
362
|
+
then previous_row.delay
|
|
363
|
+
else previous_row.departure_delay_seconds
|
|
364
|
+
end as arrival_delay_seconds,
|
|
365
|
+
predict_delay_seconds(
|
|
366
|
+
case when rst.stop_sequence - previous_row.initial_stop_sequence = 1 and previous_row.state_position != 'at_stop' then previous_row.delay else previous_row.departure_delay_seconds end,
|
|
367
|
+
rst.computed_dwell_time_seconds,
|
|
368
|
+
previous_row.provider_source_type
|
|
369
|
+
) as departure_delay_seconds
|
|
370
|
+
from stop_times previous_row
|
|
371
|
+
inner join ropidgtfs_stop_times rst on rst.trip_id = previous_row.trip_id and rst.stop_sequence = previous_row.stop_sequence + 1
|
|
372
|
+
left join ropidgtfs_stops rs on rs.stop_id = rst.stop_id
|
|
373
|
+
left join ropidgtfs_cis_stops rcs on rcs.id = rs.computed_cis_stop_id
|
|
374
|
+
left join vehiclepositions_cis_stops vcs on vcs.rt_trip_id = previous_row.id and vcs.cis_stop_group_id = rcs.cis
|
|
375
|
+
)
|
|
376
|
+
select trip_id, stop_sequence, stop_id, platform_code, cis_stop_platform_code, arrival_delay_seconds, departure_delay_seconds
|
|
377
|
+
from stop_times
|
|
378
|
+
order by trip_id, stop_sequence;
|
|
379
|
+
|
|
380
|
+
comment on view v_vehiclepositions_stop_time_delay_prediction is '
|
|
381
|
+
This view contains the predicted delay of a vehicle at each stop.
|
|
382
|
+
';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AbstractRunRepository } from "../../vehicle-positions/workers/runs/data-access/AbstractRunRepository";
|
|
2
|
+
import { RepositoryTableName } from "../workers/constants/RepositoryTableNameEnum";
|
|
3
|
+
export declare class SelectRepositoryFactory {
|
|
4
|
+
select(repo: RepositoryTableName): AbstractRunRepository;
|
|
5
|
+
getColumnNameByRepositoryName(repo: RepositoryTableName): "" | "msg_last_timestamp" | "message_timestamp" | "vehicle_timestamp";
|
|
6
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SelectRepositoryFactory = void 0;
|
|
4
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
5
|
+
const CommonRunsRepository_1 = require("../../vehicle-positions/workers/runs/data-access/CommonRunsRepository");
|
|
6
|
+
const MetroRunsMessagesRepository_1 = require("../../vehicle-positions/workers/runs/data-access/MetroRunsMessagesRepository");
|
|
7
|
+
const RegionalBusRunsMessagesRepository_1 = require("../../vehicle-positions/workers/runs/data-access/RegionalBusRunsMessagesRepository");
|
|
8
|
+
const DescriptorRepository_1 = require("../../vehicle-positions/workers/vehicle-descriptors/data-access/DescriptorRepository");
|
|
9
|
+
const PositionsRepository_1 = require("../../vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository");
|
|
10
|
+
const TripsRepository_1 = require("../../vehicle-positions/workers/vehicle-positions/data-access/TripsRepository");
|
|
11
|
+
const RepositoryTableNameEnum_1 = require("../workers/constants/RepositoryTableNameEnum");
|
|
12
|
+
class SelectRepositoryFactory {
|
|
13
|
+
select(repo) {
|
|
14
|
+
switch (repo) {
|
|
15
|
+
case RepositoryTableNameEnum_1.RepositoryTableName.TRIPS:
|
|
16
|
+
return new TripsRepository_1.TripsRepository();
|
|
17
|
+
case RepositoryTableNameEnum_1.RepositoryTableName.POSITIONS:
|
|
18
|
+
return new PositionsRepository_1.PositionsRepository();
|
|
19
|
+
case RepositoryTableNameEnum_1.RepositoryTableName.DESCRIPTOR:
|
|
20
|
+
return new DescriptorRepository_1.DescriptorRepository();
|
|
21
|
+
case RepositoryTableNameEnum_1.RepositoryTableName.METRO:
|
|
22
|
+
return new MetroRunsMessagesRepository_1.MetroRunsMessagesRepository();
|
|
23
|
+
case RepositoryTableNameEnum_1.RepositoryTableName.REGIONAL_BUS:
|
|
24
|
+
return new RegionalBusRunsMessagesRepository_1.RegionalBusRunsMessagesRepository();
|
|
25
|
+
case RepositoryTableNameEnum_1.RepositoryTableName.COMMON_RUNS:
|
|
26
|
+
return new CommonRunsRepository_1.CommonRunsRepository();
|
|
27
|
+
default:
|
|
28
|
+
throw new golemio_errors_1.GeneralError("Repository type undefined.");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
getColumnNameByRepositoryName(repo) {
|
|
32
|
+
switch (repo) {
|
|
33
|
+
case RepositoryTableNameEnum_1.RepositoryTableName.METRO:
|
|
34
|
+
return "message_timestamp";
|
|
35
|
+
case RepositoryTableNameEnum_1.RepositoryTableName.REGIONAL_BUS:
|
|
36
|
+
return "vehicle_timestamp";
|
|
37
|
+
case RepositoryTableNameEnum_1.RepositoryTableName.COMMON_RUNS:
|
|
38
|
+
return "msg_last_timestamp";
|
|
39
|
+
default:
|
|
40
|
+
return "";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.SelectRepositoryFactory = SelectRepositoryFactory;
|
|
45
|
+
//# 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":";;;AACA,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;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;AAhCD,0DAgCC"}
|
|
@@ -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;
|
|
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,8 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
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 || (exports.RepositoryTableName = RepositoryTableName = {}));
|
|
13
|
+
//# sourceMappingURL=RepositoryTableNameEnum.js.map
|
package/dist/integration-engine/data-retention/workers/constants/RepositoryTableNameEnum.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepositoryTableNameEnum.js","sourceRoot":"","sources":["../../../../../src/integration-engine/data-retention/workers/constants/RepositoryTableNameEnum.ts"],"names":[],"mappings":";;;AAAA,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC3B,gDAAyB,CAAA;IACzB,wDAAiC,CAAA;IACjC,0DAAmC,CAAA;IACnC,4DAAqC,CAAA;IACrC,yEAAkD,CAAA;IAClD,2DAAoC,CAAA;AACxC,CAAC,EAPW,mBAAmB,mCAAnB,mBAAmB,QAO9B"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { IDataDeletionParams } from "
|
|
2
|
-
import { DataDeletionValidationSchema } from "
|
|
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
|
|
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("
|
|
13
|
+
const DataDeletionSchema_1 = require("../../../shared/schema/DataDeletionSchema");
|
|
14
14
|
const workers_1 = require("@golemio/core/dist/integration-engine/workers");
|
|
15
|
-
const
|
|
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 =
|
|
20
|
+
this.queueTtl = 15 * 60 * 1000; // 15 minutes
|
|
22
21
|
this.schema = DataDeletionSchema_1.DataDeletionValidationSchema;
|
|
23
|
-
this.
|
|
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.
|
|
29
|
-
yield this.
|
|
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"}
|
|
@@ -61,7 +61,8 @@ class DeparturesRepository extends models_1.PostgresModel {
|
|
|
61
61
|
t6.stop_sequence AS next_stop_sequence,
|
|
62
62
|
t6.stop_id AS next_stop_id,
|
|
63
63
|
t7.stop_sequence AS last_stop_sequence,
|
|
64
|
-
t7.stop_id AS last_stop_id
|
|
64
|
+
t7.stop_id AS last_stop_id,
|
|
65
|
+
cis_stop.cis AS cis_stop_group_id
|
|
65
66
|
FROM ropidgtfs_stop_times${sourceTableSuffix} t
|
|
66
67
|
LEFT JOIN ropidgtfs_stops${sourceTableSuffix} t0 ON t.stop_id = t0.stop_id
|
|
67
68
|
LEFT JOIN ropidgtfs_trips${sourceTableSuffix} t2 ON t.trip_id = t2.trip_id
|
|
@@ -71,6 +72,7 @@ class DeparturesRepository extends models_1.PostgresModel {
|
|
|
71
72
|
LEFT JOIN ropidgtfs_routes${sourceTableSuffix} t5 ON t2.route_id = t5.route_id
|
|
72
73
|
LEFT JOIN ropidgtfs_stop_times${sourceTableSuffix} t6 ON t.trip_id = t6.trip_id AND t6.stop_sequence = t.stop_sequence + 1
|
|
73
74
|
LEFT JOIN ropidgtfs_stop_times${sourceTableSuffix} t7 ON t.trip_id = t7.trip_id AND t7.stop_sequence = t.stop_sequence - 1
|
|
75
|
+
LEFT JOIN ropidgtfs_cis_stops cis_stop on cis_stop.id = t0.computed_cis_stop_id
|
|
74
76
|
${timeConstraintLiteral}`;
|
|
75
77
|
/* eslint-enable max-len */
|
|
76
78
|
try {
|
package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeparturesRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uEAA4D;AAC5D,gEAAuC;AACvC,8FAAqE;AACrE,yEAAsE;AACtE,2EAAoE;AACpE,yEAAqF;AACrF,mFAAkF;AAClF,+EAA4E;AAG5E,MAAa,oBAAqB,SAAQ,sBAAa;IACnD;QACI,KAAK,CACD,sBAAsB,EACtB;YACI,WAAW,EAAE,6BAAe,CAAC,UAAU;YACvC,QAAQ,EAAE,iBAAS;YACnB,yBAAyB,EAAE,6BAAe,CAAC,cAAc;YACzD,kBAAkB,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC;YACtD,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,sBAAsB,EAAE,6BAAe,CAAC,UAAU,CAAC,CAC9E,CAAC;QAGC,sBAAiB,GAAG,CAAO,iBAAwC,EAAiB,EAAE;YACzF,MAAM,qBAAqB,GACvB,eAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,4EAA4E,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnH,4BAA4B;YAC5B,MAAM,GAAG,GAAG
|
|
1
|
+
{"version":3,"file":"DeparturesRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uEAA4D;AAC5D,gEAAuC;AACvC,8FAAqE;AACrE,yEAAsE;AACtE,2EAAoE;AACpE,yEAAqF;AACrF,mFAAkF;AAClF,+EAA4E;AAG5E,MAAa,oBAAqB,SAAQ,sBAAa;IACnD;QACI,KAAK,CACD,sBAAsB,EACtB;YACI,WAAW,EAAE,6BAAe,CAAC,UAAU;YACvC,QAAQ,EAAE,iBAAS;YACnB,yBAAyB,EAAE,6BAAe,CAAC,cAAc;YACzD,kBAAkB,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC;YACtD,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,sBAAsB,EAAE,6BAAe,CAAC,UAAU,CAAC,CAC9E,CAAC;QAGC,sBAAiB,GAAG,CAAO,iBAAwC,EAAiB,EAAE;YACzF,MAAM,qBAAqB,GACvB,eAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,4EAA4E,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnH,4BAA4B;YAC5B,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAiCmB,iBAAiB;2CACb,iBAAiB;2CACjB,iBAAiB;;;8CAGd,iBAAiB;4CACnB,iBAAiB;gDACb,iBAAiB;gDACjB,iBAAiB;;cAEnD,qBAAqB,EAAE,CAAC;YAC9B,2BAA2B;YAE3B,IAAI;gBACA,MAAM,SAAS,GAAG,6BAAe,CAAC,UAAU,CAAC;gBAC7C,MAAM,YAAY,GAAG,SAAS,GAAG,6CAAqB,CAAC,GAAG,CAAC;gBAE3D,MAAM,IAAI,CAAC,cAAc,CAAC,SAAU,CAAC,KAAK,CACtC;2CAC2B,iBAAS;uCACb,YAAY;+BACpB,YAAY,UAAU,SAAS;8BAChC,YAAY,IAAI,GAAG,GAAG,EACpC;oBACI,YAAY,EAAE;wBACV,gBAAgB,EAAE,kCAAiB,CAAC,iBAAiB;qBACxD;iBACJ,CACJ,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,aAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,GAAG,CAAC;aACb;QACL,CAAC,CAAA,CAAC;QAEK,iBAAY,GAAG,CAAO,WAAwB,EAAiB,EAAE;YACpE,IAAI;gBACA,MAAM,SAAS,GAAG,6BAAe,CAAC,UAAU,CAAC;gBAC7C,MAAM,YAAY,GAAG,SAAS,GAAG,6CAAqB,CAAC,GAAG,CAAC;gBAC3D,MAAM,aAAa,GAAG,SAAS,GAAG,6CAAqB,CAAC,IAAI,CAAC;gBAE7D,MAAM,IAAI,CAAC,cAAc,CAAC,SAAU,CAAC,KAAK,CACtC;2CAC2B,iBAAS;uBAC7B,SAAS;8BACF,SAAS,cAAc,aAAa;8BACpC,YAAY,cAAc,SAAS;6BACpC,aAAa,WAAW,EACrC,EAAE,WAAW,EAAE,CAClB,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,aAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,GAAG,CAAC;aACb;QACL,CAAC,CAAA,CAAC;QAEK,YAAO,GAAG,GAAwB,EAAE;YACvC,IAAI;gBACA,MAAM,IAAI,CAAC,cAAc,CAAC,SAAU,CAAC,KAAK,CACtC,WAAW,iBAAS,IAAI,6BAAe,CAAC,UAAU,GAAG,6CAAqB,CAAC,GAAG,GAAG,CACpF,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,aAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,GAAG,CAAC;aACb;QACL,CAAC,CAAA,CAAC;IAzGF,CAAC;CA0GJ;AAvHD,oDAuHC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { RepositoryTableName } from "../../data-retention/workers/constants/RepositoryTableNameEnum";
|
|
1
2
|
import { IDataDeletionParams } from "../interfaces/IDataDeletionParams";
|
|
2
3
|
export declare class DataDeletionValidationSchema implements IDataDeletionParams {
|
|
3
4
|
targetHours: number;
|
|
5
|
+
repoName: RepositoryTableName;
|
|
4
6
|
}
|
|
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.DataDeletionValidationSchema = void 0;
|
|
13
|
+
const RepositoryTableNameEnum_1 = require("../../data-retention/workers/constants/RepositoryTableNameEnum");
|
|
13
14
|
const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
|
|
14
15
|
class DataDeletionValidationSchema {
|
|
15
16
|
}
|
|
@@ -19,4 +20,9 @@ __decorate([
|
|
|
19
20
|
(0, class_validator_1.Min)(8, { message: "Data newer than 8 hours cannot be deleted" }),
|
|
20
21
|
__metadata("design:type", Number)
|
|
21
22
|
], DataDeletionValidationSchema.prototype, "targetHours", void 0);
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, class_validator_1.IsString)(),
|
|
25
|
+
(0, class_validator_1.IsEnum)(RepositoryTableNameEnum_1.RepositoryTableName),
|
|
26
|
+
__metadata("design:type", String)
|
|
27
|
+
], DataDeletionValidationSchema.prototype, "repoName", void 0);
|
|
22
28
|
//# sourceMappingURL=DataDeletionSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataDeletionSchema.js","sourceRoot":"","sources":["../../../../src/integration-engine/shared/schema/DataDeletionSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"DataDeletionSchema.js","sourceRoot":"","sources":["../../../../src/integration-engine/shared/schema/DataDeletionSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4GAAmG;AACnG,+EAAyF;AAGzF,MAAa,4BAA4B;CAQxC;AARD,oEAQC;AALG;IAFC,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;;iEAC5C;AAIrB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,6CAAmB,CAAC;;8DACG"}
|
|
@@ -17,7 +17,6 @@ const DescriptorRepository_1 = require("../workers/vehicle-descriptors/data-acce
|
|
|
17
17
|
const DescriptorDataSourceFactory_1 = require("../workers/vehicle-descriptors/datasources/DescriptorDataSourceFactory");
|
|
18
18
|
const SeznamAutobusuDataSourceProvider_1 = require("../workers/vehicle-descriptors/datasources/seznam-autobusu/SeznamAutobusuDataSourceProvider");
|
|
19
19
|
const DescriptorFilter_1 = require("../workers/vehicle-descriptors/helpers/DescriptorFilter");
|
|
20
|
-
const DeleteDataTask_1 = require("../workers/vehicle-descriptors/tasks/DeleteDataTask");
|
|
21
20
|
const RefreshDescriptorsTask_1 = require("../workers/vehicle-descriptors/tasks/RefreshDescriptorsTask");
|
|
22
21
|
const DescriptorTransformation_1 = require("../workers/vehicle-descriptors/transformations/DescriptorTransformation");
|
|
23
22
|
const PublicApiCacheRepository_1 = require("../workers/vehicle-positions/data-access/cache/PublicApiCacheRepository");
|
|
@@ -59,7 +58,6 @@ VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RegionalBusRun
|
|
|
59
58
|
//#endregion
|
|
60
59
|
//#region Tasks
|
|
61
60
|
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshDescriptorsTask, RefreshDescriptorsTask_1.RefreshDescriptorsTask);
|
|
62
|
-
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.DeleteDataTask, DeleteDataTask_1.DeleteDataTask);
|
|
63
61
|
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.SaveArrivaCityRunsToDBTask, SaveArrivaCityRunsToDBTask_1.SaveArrivaCityRunsToDBTask);
|
|
64
62
|
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.ProcessRegionalBusRunMessagesTask, ProcessRegionalBusRunMessagesTask_1.ProcessRegionalBusRunMessagesTask);
|
|
65
63
|
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshPublicTripCacheTask, RefreshPublicTripCacheTask_1.RefreshPublicTripCacheTask);
|