@golemio/pid 2.3.3-dev.685741706 → 2.3.3-dev.685860908
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/migrations/postgresql/sqls/20221017095920-vp-history-down.sql +3 -1
- package/db/migrations/postgresql/sqls/20221017095920-vp-history-up.sql +6 -9
- package/dist/const.d.ts +1 -0
- package/dist/const.js +2 -1
- package/dist/const.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/tasks/DataRetentionTask.js +2 -3
- package/dist/integration-engine/vehicle-positions/workers/tasks/DataRetentionTask.js.map +1 -1
- package/dist/output-gateway/departure-boards/DepartureBoardsRouter.d.ts +2 -2
- package/dist/output-gateway/departure-boards/DepartureBoardsRouter.js +8 -5
- package/dist/output-gateway/departure-boards/DepartureBoardsRouter.js.map +1 -1
- package/dist/output-gateway/pid/PIDRouter.d.ts +1 -1
- package/dist/output-gateway/pid/PIDRouter.js +8 -5
- package/dist/output-gateway/pid/PIDRouter.js.map +1 -1
- package/docs/openapi-output.yaml +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
DROP procedure vehiclepositions_data_retention(int);
|
|
1
|
+
DROP procedure vehiclepositions_data_retention(int, int);
|
|
2
2
|
|
|
3
3
|
DROP TABLE vehiclepositions_positions_history;
|
|
4
4
|
|
|
5
5
|
DROP TABLE vehiclepositions_trips_history;
|
|
6
|
+
|
|
7
|
+
CREATE INDEX IF NOT EXISTS vehiclepositions_positions_origin_time ON vehiclepositions_positions USING btree (origin_time);
|
|
@@ -37,7 +37,7 @@ CREATE TABLE vehiclepositions_trips_history (
|
|
|
37
37
|
);
|
|
38
38
|
CREATE INDEX vehiclepositions_trips_history_gtfs_trip_id ON vehiclepositions_trips_history USING btree (gtfs_trip_id);
|
|
39
39
|
CREATE INDEX vehiclepositions_trips_history_idx0 ON vehiclepositions_trips_history USING hash (last_position_id);
|
|
40
|
-
|
|
40
|
+
CREATE INDEX vehiclepositions_trips_history_start_timestamp_idx ON vehiclepositions_trips_history USING btree (start_timestamp);
|
|
41
41
|
|
|
42
42
|
-- pid.vehiclepositions_positions definition
|
|
43
43
|
|
|
@@ -85,14 +85,9 @@ CREATE TABLE vehiclepositions_positions_history (
|
|
|
85
85
|
valid_to int8 NULL,
|
|
86
86
|
CONSTRAINT vehiclepositions_positions_history_pkey PRIMARY KEY (id)
|
|
87
87
|
);
|
|
88
|
-
CREATE INDEX vehiclepositions_positions_history_created_at ON vehiclepositions_positions_history USING btree (created_at);
|
|
89
|
-
CREATE INDEX vehiclepositions_positions_history_idx0 ON vehiclepositions_positions_history USING btree (id, valid_to, state_position) INCLUDE (delay);
|
|
90
|
-
CREATE INDEX vehiclepositions_positions_history_origin_time ON vehiclepositions_positions_history USING btree (origin_time);
|
|
91
88
|
CREATE INDEX vehiclepositions_positions_history_trips_id ON vehiclepositions_positions_history USING btree (trips_id);
|
|
92
|
-
CREATE INDEX vehiclepositions_positions_history_updated_at ON vehiclepositions_positions_history USING btree (updated_at DESC);
|
|
93
|
-
CREATE INDEX vehiclepositions_positions_history_valid_to ON vehiclepositions_positions_history USING btree (valid_to);
|
|
94
89
|
|
|
95
|
-
CREATE or replace PROCEDURE vehiclepositions_data_retention(inout numberOfRows int)
|
|
90
|
+
CREATE or replace PROCEDURE vehiclepositions_data_retention(inout numberOfRows int, in dataRetentionMinutes int)
|
|
96
91
|
LANGUAGE plpgsql
|
|
97
92
|
AS $procedure$
|
|
98
93
|
declare
|
|
@@ -102,8 +97,8 @@ AS $procedure$
|
|
|
102
97
|
left join pid.vehiclepositions_positions p on
|
|
103
98
|
p.id = t.last_position_id
|
|
104
99
|
where
|
|
105
|
-
p.valid_to/1000 < extract(epoch from (NOW() - '
|
|
106
|
-
or (gtfs_trip_id is null and p.created_at < NOW() - '
|
|
100
|
+
p.valid_to/1000 < extract(epoch from (NOW() - (dataRetentionMinutes || ' minutes')::interval))
|
|
101
|
+
or (gtfs_trip_id is null and p.created_at < NOW() - (dataRetentionMinutes || ' minutes')::interval) -- entries with valid to is null
|
|
107
102
|
into idsForDelete;
|
|
108
103
|
|
|
109
104
|
INSERT INTO pid.vehiclepositions_trips_history
|
|
@@ -120,3 +115,5 @@ AS $procedure$
|
|
|
120
115
|
select array_length(idsForDelete,1) into numberOfRows;
|
|
121
116
|
end;
|
|
122
117
|
$procedure$;
|
|
118
|
+
|
|
119
|
+
DROP INDEX vehiclepositions_positions_origin_time;
|
package/dist/const.d.ts
CHANGED
package/dist/const.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ArrayNotPublicRegistrationNumbers = exports.PositionTrackingEnum = exports.TCPEventEnum = exports.StateProcessEnum = exports.StatePositionEnum = void 0;
|
|
3
|
+
exports.DATA_RETENTION_IN_MINUTES = exports.ArrayNotPublicRegistrationNumbers = exports.PositionTrackingEnum = exports.TCPEventEnum = exports.StateProcessEnum = exports.StatePositionEnum = void 0;
|
|
4
4
|
var StatePositionEnum;
|
|
5
5
|
(function (StatePositionEnum) {
|
|
6
6
|
StatePositionEnum["OFF_TRACK"] = "off_track";
|
|
@@ -35,4 +35,5 @@ var PositionTrackingEnum;
|
|
|
35
35
|
PositionTrackingEnum[PositionTrackingEnum["TRACKING"] = 2] = "TRACKING";
|
|
36
36
|
})(PositionTrackingEnum = exports.PositionTrackingEnum || (exports.PositionTrackingEnum = {}));
|
|
37
37
|
exports.ArrayNotPublicRegistrationNumbers = ["2210", "5572"];
|
|
38
|
+
exports.DATA_RETENTION_IN_MINUTES = 30;
|
|
38
39
|
//# sourceMappingURL=const.js.map
|
package/dist/const.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAYX;AAZD,WAAY,iBAAiB;IACzB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,kDAA6B,CAAA;IAC7B,gDAA2B,CAAA;IAC3B,0CAAqB,CAAA;IACrB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,kEAA6C,CAAA;IAC7C,4CAAuB,CAAA;IACvB,8CAAyB,CAAA;AAC7B,CAAC,EAZW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAY5B;AAED,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,2CAAuB,CAAA;IACvB,2CAAuB,CAAA;IACvB,mCAAe,CAAA;IACf,2CAAuB,CAAA;AAC3B,CAAC,EALW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAK3B;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,uCAAuB,CAAA;IACvB,gCAAgB,CAAA;IAChB,uBAAO,CAAA;IACP,uBAAO,CAAA;AACX,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB;AAED,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC5B,+EAAgB,CAAA;IAChB,uEAAY,CAAA;AAChB,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B;AAEY,QAAA,iCAAiC,GAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAYX;AAZD,WAAY,iBAAiB;IACzB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,kDAA6B,CAAA;IAC7B,gDAA2B,CAAA;IAC3B,0CAAqB,CAAA;IACrB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,kEAA6C,CAAA;IAC7C,4CAAuB,CAAA;IACvB,8CAAyB,CAAA;AAC7B,CAAC,EAZW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAY5B;AAED,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,2CAAuB,CAAA;IACvB,2CAAuB,CAAA;IACvB,mCAAe,CAAA;IACf,2CAAuB,CAAA;AAC3B,CAAC,EALW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAK3B;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,uCAAuB,CAAA;IACvB,gCAAgB,CAAA;IAChB,uBAAO,CAAA;IACP,uBAAO,CAAA;AACX,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB;AAED,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC5B,+EAAgB,CAAA;IAChB,uEAAY,CAAA;AAChB,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B;AAEY,QAAA,iCAAiC,GAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/D,QAAA,yBAAyB,GAAG,EAAE,CAAC"}
|
|
@@ -15,6 +15,7 @@ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
|
15
15
|
const workers_1 = require("@golemio/core/dist/integration-engine/workers");
|
|
16
16
|
const redis_semaphore_1 = require("@golemio/core/dist/shared/redis-semaphore");
|
|
17
17
|
const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
|
|
18
|
+
const const_1 = require("../../../../const");
|
|
18
19
|
class DataRetentionTask extends workers_1.AbstractEmptyTask {
|
|
19
20
|
constructor(queuePrefix) {
|
|
20
21
|
super(queuePrefix);
|
|
@@ -35,7 +36,7 @@ class DataRetentionTask extends workers_1.AbstractEmptyTask {
|
|
|
35
36
|
}
|
|
36
37
|
try {
|
|
37
38
|
const sequelize = integration_engine_1.PostgresConnector.getConnection();
|
|
38
|
-
const result = yield sequelize.query(`CALL ${vehicle_positions_1.VehiclePositions.pgSchema}.vehiclepositions_data_retention(0);`, {
|
|
39
|
+
const result = yield sequelize.query(`CALL ${vehicle_positions_1.VehiclePositions.pgSchema}.vehiclepositions_data_retention(0,${const_1.DATA_RETENTION_IN_MINUTES});`, {
|
|
39
40
|
plain: true,
|
|
40
41
|
type: sequelize_1.QueryTypes.SELECT,
|
|
41
42
|
});
|
|
@@ -80,8 +81,6 @@ class DataRetentionTask extends workers_1.AbstractEmptyTask {
|
|
|
80
81
|
}
|
|
81
82
|
getMaintenanceCommands() {
|
|
82
83
|
return [
|
|
83
|
-
`VACUUM ANALYZE ${vehicle_positions_1.VehiclePositions.pgSchema}.vehiclepositions_trips;`,
|
|
84
|
-
`VACUUM ANALYZE ${vehicle_positions_1.VehiclePositions.pgSchema}.vehiclepositions_positions;`,
|
|
85
84
|
`REINDEX TABLE CONCURRENTLY ${vehicle_positions_1.VehiclePositions.pgSchema}.vehiclepositions_trips;`,
|
|
86
85
|
`REINDEX TABLE CONCURRENTLY ${vehicle_positions_1.VehiclePositions.pgSchema}.vehiclepositions_positions;`,
|
|
87
86
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataRetentionTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/vehicle-positions/workers/tasks/DataRetentionTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wFAA0D;AAC1D,8EAAuG;AACvG,2EAAkF;AAClF,+EAAkE;AAClE,mEAA4E;
|
|
1
|
+
{"version":3,"file":"DataRetentionTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/vehicle-positions/workers/tasks/DataRetentionTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
* Handles web logic (http request, response). Sets response headers, handles error responses.
|
|
8
8
|
*/
|
|
9
9
|
/// <reference types="express" />
|
|
10
|
-
import { NextFunction, Request, Response, Router } from "@golemio/core/dist/shared/express";
|
|
11
|
-
import { BaseRouter } from "@golemio/core/dist/output-gateway/routes/BaseRouter";
|
|
12
10
|
import { PIDDepartureBoardsModel } from "../pid";
|
|
11
|
+
import { BaseRouter } from "@golemio/core/dist/output-gateway/routes/BaseRouter";
|
|
12
|
+
import { NextFunction, Request, Response, Router } from "@golemio/core/dist/shared/express";
|
|
13
13
|
/**
|
|
14
14
|
* @deprecated use /pid/departureboards instead
|
|
15
15
|
*/
|
|
@@ -21,14 +21,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
21
21
|
};
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
23
|
exports.departureBoardsRouter = exports.DepartureBoardsRouter = void 0;
|
|
24
|
-
const
|
|
25
|
-
const
|
|
24
|
+
const pid_1 = require("../pid");
|
|
25
|
+
const shared_1 = require("../shared");
|
|
26
26
|
const redis_1 = require("@golemio/core/dist/output-gateway/redis");
|
|
27
27
|
const BaseRouter_1 = require("@golemio/core/dist/output-gateway/routes/BaseRouter");
|
|
28
28
|
const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
|
|
29
|
-
const
|
|
30
|
-
const
|
|
29
|
+
const express_1 = require("@golemio/core/dist/shared/express");
|
|
30
|
+
const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
|
|
31
31
|
const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
|
|
32
|
+
const const_1 = require("../../const");
|
|
32
33
|
/**
|
|
33
34
|
* @deprecated use /pid/departureboards instead
|
|
34
35
|
*/
|
|
@@ -136,7 +137,9 @@ class DepartureBoardsRouter extends BaseRouter_1.BaseRouter {
|
|
|
136
137
|
(0, express_validator_1.query)("aswIds.*").optional().isString(),
|
|
137
138
|
(0, express_validator_1.query)("cisIds.*").optional().isInt(),
|
|
138
139
|
(0, express_validator_1.query)("names.*").optional().isString(),
|
|
139
|
-
(0, express_validator_1.query)("minutesBefore")
|
|
140
|
+
(0, express_validator_1.query)("minutesBefore")
|
|
141
|
+
.optional()
|
|
142
|
+
.isInt(process.env.NODE_ENV === "test" ? {} : { lt: const_1.DATA_RETENTION_IN_MINUTES + 1 }),
|
|
140
143
|
(0, express_validator_1.query)("minutesAfter").optional().isInt(),
|
|
141
144
|
(0, express_validator_1.query)("orderBySchedule").optional().isBoolean(),
|
|
142
145
|
(0, express_validator_1.query)("preferredTimezone").optional().isString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DepartureBoardsRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/departure-boards/DepartureBoardsRouter.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;AAEH
|
|
1
|
+
{"version":3,"file":"DepartureBoardsRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/departure-boards/DepartureBoardsRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Handles web logic (http request, response). Sets response headers, handles error responses.
|
|
4
4
|
*/
|
|
5
5
|
/// <reference types="express" />
|
|
6
|
-
import { Router } from "@golemio/core/dist/shared/express";
|
|
7
6
|
import { BaseRouter } from "@golemio/core/dist/output-gateway/routes/BaseRouter";
|
|
7
|
+
import { Router } from "@golemio/core/dist/shared/express";
|
|
8
8
|
export declare class PIDRouter extends BaseRouter {
|
|
9
9
|
readonly router: import("express-serve-static-core").Router;
|
|
10
10
|
private readonly departureBoardsController;
|
|
@@ -5,14 +5,15 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.pidRouter = exports.PIDRouter = void 0;
|
|
8
|
-
const
|
|
9
|
-
const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
|
|
8
|
+
const redis_1 = require("@golemio/core/dist/output-gateway/redis");
|
|
10
9
|
const BaseRouter_1 = require("@golemio/core/dist/output-gateway/routes/BaseRouter");
|
|
11
10
|
const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
|
|
12
|
-
const
|
|
13
|
-
const
|
|
11
|
+
const express_1 = require("@golemio/core/dist/shared/express");
|
|
12
|
+
const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
|
|
13
|
+
const const_1 = require("../../const");
|
|
14
14
|
const constants_1 = require("./constants");
|
|
15
15
|
const controllers_1 = require("./controllers");
|
|
16
|
+
const middleware_1 = require("./middleware");
|
|
16
17
|
class PIDRouter extends BaseRouter_1.BaseRouter {
|
|
17
18
|
constructor() {
|
|
18
19
|
super();
|
|
@@ -30,7 +31,9 @@ class PIDRouter extends BaseRouter_1.BaseRouter {
|
|
|
30
31
|
(0, express_validator_1.query)("names").exists().isArray(),
|
|
31
32
|
(0, express_validator_1.query)("names").exists().isString(),
|
|
32
33
|
]),
|
|
33
|
-
(0, express_validator_1.query)("minutesBefore")
|
|
34
|
+
(0, express_validator_1.query)("minutesBefore")
|
|
35
|
+
.optional()
|
|
36
|
+
.isInt(process.env.NODE_ENV === "test" ? {} : { lt: const_1.DATA_RETENTION_IN_MINUTES + 1 }),
|
|
34
37
|
(0, express_validator_1.query)("minutesAfter").optional().isInt(),
|
|
35
38
|
(0, express_validator_1.query)("preferredTimezone").optional().isString().isIn(prefferedTimezone),
|
|
36
39
|
(0, express_validator_1.query)("mode").optional().isIn(departureMode),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PIDRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/PIDRouter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH
|
|
1
|
+
{"version":3,"file":"PIDRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/PIDRouter.ts"],"names":[],"mappings":"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"}
|
package/docs/openapi-output.yaml
CHANGED
|
@@ -744,7 +744,7 @@ paths:
|
|
|
744
744
|
example: "Smíchovské"
|
|
745
745
|
- name: minutesBefore
|
|
746
746
|
in: query
|
|
747
|
-
description: Set the start of interval from which to retrieve departures. Positive numbers are set in past relative to the time of request or `timeFrom` timestamp, negative numbers set the start in the future. Use to compensate for walking distance to a stop. Default is set to 0.
|
|
747
|
+
description: Set the start of interval from which to retrieve departures. Positive numbers are set in past relative to the time of request or `timeFrom` timestamp, negative numbers set the start in the future. Use to compensate for walking distance to a stop. Default is set to 0. Maximum value is 30 because of implemented data retention.
|
|
748
748
|
required: false
|
|
749
749
|
schema:
|
|
750
750
|
type: number
|