@golemio/pid 4.1.4-dev.2053451259 → 4.1.4-dev.2059844632
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/dist/helpers/GtfsStopParser.d.ts +1 -0
- package/dist/helpers/GtfsStopParser.js +6 -0
- package/dist/helpers/GtfsStopParser.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/RopidGTFSStopsModel.d.ts +2 -2
- package/dist/integration-engine/ropid-gtfs/RopidGTFSStopsModel.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository.d.ts +2 -2
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository.js.map +1 -1
- package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.d.ts +4 -1
- package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.js +35 -18
- package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.js.map +1 -1
- package/dist/output-gateway/pid/helpers/TransferBoardFilter.d.ts +5 -2
- package/dist/output-gateway/pid/helpers/TransferBoardFilter.js +45 -1
- package/dist/output-gateway/pid/helpers/TransferBoardFilter.js.map +1 -1
- package/dist/output-gateway/pid/index.d.ts +2 -1
- package/dist/output-gateway/pid/index.js.map +1 -1
- package/dist/output-gateway/pid/service/facade/StopFacade.d.ts +3 -0
- package/dist/output-gateway/pid/service/facade/StopFacade.js +7 -0
- package/dist/output-gateway/pid/service/facade/StopFacade.js.map +1 -1
- package/dist/output-gateway/pid/service/facade/TransferFacade.d.ts +16 -9
- package/dist/output-gateway/pid/service/facade/TransferFacade.js +103 -46
- package/dist/output-gateway/pid/service/facade/TransferFacade.js.map +1 -1
- package/dist/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.d.ts +2 -0
- package/dist/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.js +24 -2
- package/dist/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/interfaces/IStopDto.d.ts +1 -1
- package/package.json +1 -1
|
@@ -40,6 +40,12 @@ let GtfsStopParser = exports.GtfsStopParser = class GtfsStopParser {
|
|
|
40
40
|
getAswNodeFromId(aswId) {
|
|
41
41
|
return this.parseAswId(aswId).aswNode;
|
|
42
42
|
}
|
|
43
|
+
normalizedStopId(stopId) {
|
|
44
|
+
return stopId
|
|
45
|
+
.split(/[^\d]/g)
|
|
46
|
+
.filter((s) => !!s.length)
|
|
47
|
+
.join("/");
|
|
48
|
+
}
|
|
43
49
|
};
|
|
44
50
|
exports.GtfsStopParser = GtfsStopParser = __decorate([
|
|
45
51
|
(0, tsyringe_1.injectable)()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GtfsStopParser.js","sourceRoot":"","sources":["../../src/helpers/GtfsStopParser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6EAAwE;AACxE,mEAA8E;AAC9E,iEAAgE;AAChE,oCAAmD;AAG5C,IAAM,cAAc,4BAApB,MAAM,cAAc;IAChB,sBAAsB,CAAC,MAAgB;QAC1C,IAAI,eAAe,GAAmB,EAAE,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE;gBACV,SAAS;aACZ;YACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAE9C,eAAe,CAAC,IAAI,CAChB,qBAAS,CAAC,GAAG,CACT,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAC3D,SAAS,IAAI,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAC7E,CACJ,CAAC;SACL;QACD,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEO,cAAc,CAAC,KAAa;QAChC,OAAO,KAAK,IAAI,kBAAU,IAAI,KAAK,IAAI,kBAAU,CAAC;IACtD,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,MAAe;QAChE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACrF,MAAM,IAAI,6BAAY,CAAC,mBAAmB,KAAK,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,mBAAmB,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;SAC9G;IACL,CAAC;IAEO,UAAU,CAAC,KAAa;QAI5B,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAClC,CAAC;IAEM,gBAAgB,CAAC,KAAa;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IAC1C,CAAC;CACJ,CAAA;
|
|
1
|
+
{"version":3,"file":"GtfsStopParser.js","sourceRoot":"","sources":["../../src/helpers/GtfsStopParser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6EAAwE;AACxE,mEAA8E;AAC9E,iEAAgE;AAChE,oCAAmD;AAG5C,IAAM,cAAc,4BAApB,MAAM,cAAc;IAChB,sBAAsB,CAAC,MAAgB;QAC1C,IAAI,eAAe,GAAmB,EAAE,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE;gBACV,SAAS;aACZ;YACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAE9C,eAAe,CAAC,IAAI,CAChB,qBAAS,CAAC,GAAG,CACT,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAC3D,SAAS,IAAI,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAC7E,CACJ,CAAC;SACL;QACD,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEO,cAAc,CAAC,KAAa;QAChC,OAAO,KAAK,IAAI,kBAAU,IAAI,KAAK,IAAI,kBAAU,CAAC;IACtD,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,MAAe;QAChE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACrF,MAAM,IAAI,6BAAY,CAAC,mBAAmB,KAAK,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,mBAAmB,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;SAC9G;IACL,CAAC;IAEO,UAAU,CAAC,KAAa;QAI5B,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAClC,CAAC;IAEM,gBAAgB,CAAC,KAAa;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IAC1C,CAAC;IAEM,gBAAgB,CAAC,MAAc;QAClC,OAAO,MAAM;aACR,KAAK,CAAC,QAAQ,CAAC;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aACzB,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ,CAAA;yBAlDY,cAAc;IAD1B,IAAA,qBAAU,GAAE;GACA,cAAc,CAkD1B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IStopCacheDto, IStopDto } from "../../schema-definitions/ropid-gtfs/interfaces/IStopDto";
|
|
2
2
|
import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine";
|
|
3
3
|
import { IValidator } from "@golemio/core/dist/shared/golemio-validator";
|
|
4
4
|
import Sequelize from "@golemio/core/dist/shared/sequelize";
|
|
@@ -18,5 +18,5 @@ export declare class RopidGTFSStopsModel extends PostgresModel implements IModel
|
|
|
18
18
|
/**
|
|
19
19
|
* Retrieve all stops data needed for cache where location_type is 0 and computed_cis_stop_id is not null
|
|
20
20
|
*/
|
|
21
|
-
getStopsForCache: () => Promise<
|
|
21
|
+
getStopsForCache: () => Promise<IStopCacheDto[]>;
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RopidGTFSStopsModel.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGTFSStopsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAA0D;AAC1D,0DAAuC;AACvC,oEAA4C;AAE5C,gFAAyD;AACzD,8EAA8E;AAC9E,6EAAwE;AACxE,mFAA8F;AAC9F,mEAAoE;AACpE,iEAAgE;AAGzD,IAAM,mBAAmB,iCAAzB,MAAM,mBAAoB,SAAQ,kCAAa;IAYlD;QACI,KAAK,CACD,sBAAS,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAC9B;YACI,yBAAyB,EAAE,sBAAS,CAAC,KAAK,CAAC,yBAAyB;YACpE,WAAW,EAAE,sBAAS,CAAC,KAAK,CAAC,WAAW;YACxC,QAAQ,EAAE,iBAAS;YACnB,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,sBAAS,CAAC,KAAK,CAAC,IAAI,GAAG,gBAAgB,EAAE,iBAAO,CAAC,UAAU,CAAC,CACvF,CAAC;QAGC,WAAM,GAAG,KAAK,IAAyB,EAAE;YAC5C,IAAI;gBACA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aACxC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aAC7E;QACL,CAAC,CAAC;QAEF;;WAEG;QACI,qBAAgB,GAAG,KAAK,IAAI,EAAE;YACjC,IAAI;gBACA,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC7C,UAAU,EAAE;wBACR,SAAS;wBACT,aAAa;wBACb,WAAW;wBACX,eAAe;wBACf,qBAAqB;wBACrB,SAAS;wBACT,sBAAsB;qBACzB;oBACD,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE;wBACH,aAAa,EAAE,gCAAoB,CAAC,cAAc;wBAClD,oBAAoB,EAAE,EAAE,CAAC,cAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;qBAC3C;iBACJ,CAAC,
|
|
1
|
+
{"version":3,"file":"RopidGTFSStopsModel.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGTFSStopsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAA0D;AAC1D,0DAAuC;AACvC,oEAA4C;AAE5C,gFAAyD;AACzD,8EAA8E;AAC9E,6EAAwE;AACxE,mFAA8F;AAC9F,mEAAoE;AACpE,iEAAgE;AAGzD,IAAM,mBAAmB,iCAAzB,MAAM,mBAAoB,SAAQ,kCAAa;IAYlD;QACI,KAAK,CACD,sBAAS,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,EAC9B;YACI,yBAAyB,EAAE,sBAAS,CAAC,KAAK,CAAC,yBAAyB;YACpE,WAAW,EAAE,sBAAS,CAAC,KAAK,CAAC,WAAW;YACxC,QAAQ,EAAE,iBAAS;YACnB,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,sBAAS,CAAC,KAAK,CAAC,IAAI,GAAG,gBAAgB,EAAE,iBAAO,CAAC,UAAU,CAAC,CACvF,CAAC;QAGC,WAAM,GAAG,KAAK,IAAyB,EAAE;YAC5C,IAAI;gBACA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aACxC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aAC7E;QACL,CAAC,CAAC;QAEF;;WAEG;QACI,qBAAgB,GAAG,KAAK,IAAI,EAAE;YACjC,IAAI;gBACA,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC7C,UAAU,EAAE;wBACR,SAAS;wBACT,aAAa;wBACb,WAAW;wBACX,eAAe;wBACf,qBAAqB;wBACrB,SAAS;wBACT,sBAAsB;qBACzB;oBACD,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE;wBACH,aAAa,EAAE,gCAAoB,CAAC,cAAc;wBAClD,oBAAoB,EAAE,EAAE,CAAC,cAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;qBAC3C;iBACJ,CAAC,CAAoB,CAAC;gBAEvB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,OAAO,EAAE,CAAC;iBACb;gBACD,OAAO,KAAK,CAAC;aAChB;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,IAAI,6BAAY,CAAC,mCAAmC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC7F;QACL,CAAC,CAAC;IAvCF,CAAC;CAwCJ,CAAA;8BA/DY,mBAAmB;IAD/B,IAAA,qBAAU,GAAE;;GACA,mBAAmB,CA+D/B"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { GtfsStopParser } from "../../../../../../../helpers/GtfsStopParser";
|
|
2
2
|
import { IStopCisDto } from "../../../../../../../schema-definitions/ropid-gtfs/interfaces/IStopCisDto";
|
|
3
|
-
import {
|
|
3
|
+
import { IStopCacheDto } from "../../../../../../../schema-definitions/ropid-gtfs/interfaces/IStopDto";
|
|
4
4
|
import { RedisModel } from "@golemio/core/dist/integration-engine";
|
|
5
5
|
export declare class GtfsStopsRedisRepository extends RedisModel {
|
|
6
6
|
private gtfsStopParser;
|
|
7
7
|
static NAMESPACE_PREFIX: string;
|
|
8
8
|
constructor(gtfsStopParser: GtfsStopParser);
|
|
9
|
-
refreshData(cisStops: Array<Pick<IStopCisDto, "id" | "cis">>, gtfsStops:
|
|
9
|
+
refreshData(cisStops: Array<Pick<IStopCisDto, "id" | "cis">>, gtfsStops: IStopCacheDto[]): Promise<void>;
|
|
10
10
|
private createNewCache;
|
|
11
11
|
private deleteOldCache;
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GtfsStopsRedisRepository.js","sourceRoot":"","sources":["../../../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gFAAyD;AACzD,wFAAqF;AAGrF,0FAA0E;AAC1E,8EAAmE;AACnE,6EAAwE;AACxE,iEAAwE;AACxE,6CAA0C;AAE1C,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAG9B,IAAM,wBAAwB,mEAA9B,MAAM,wBAAyB,SAAQ,+BAAU;IAGpD,YAAoE,cAA8B;QAC9F,KAAK,CAAC,0BAA0B,EAAE;YAC9B,wBAAwB,EAAE,KAAK;YAC/B,MAAM,EAAE,0BAAwB,CAAC,gBAAgB;SACpD,CAAC,CAAC;QAJ6D,mBAAc,GAAd,cAAc,CAAgB;IAKlG,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,QAAgD,EAAE,
|
|
1
|
+
{"version":3,"file":"GtfsStopsRedisRepository.js","sourceRoot":"","sources":["../../../../../../../../src/integration-engine/ropid-gtfs/workers/timetables/tasks/data-access/cache/GtfsStopsRedisRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,16 @@ import { StopFacade } from "../../service/facade/StopFacade";
|
|
|
4
4
|
import { TransferFacade } from "../../service/facade/TransferFacade";
|
|
5
5
|
import { RequestHandler } from "@golemio/core/dist/shared/express";
|
|
6
6
|
import { TransferDepartureCacheTransformation } from "../../service/transformations/TransferDepartureCacheTransformation";
|
|
7
|
+
import { GtfsStopParser } from "../../../../helpers/GtfsStopParser";
|
|
7
8
|
export declare class V4TransferBoardsController {
|
|
8
9
|
private stopFacade;
|
|
9
10
|
private infotextFacade;
|
|
10
11
|
private transferFacade;
|
|
11
12
|
private transformation;
|
|
13
|
+
private gtfsStopParser;
|
|
14
|
+
private static readonly NO_TRANSFERS;
|
|
12
15
|
private readonly defaultTransferBoardsLimit;
|
|
13
|
-
constructor(stopFacade: StopFacade, infotextFacade: InfotextFacade, transferFacade: TransferFacade, transformation: TransferDepartureCacheTransformation);
|
|
16
|
+
constructor(stopFacade: StopFacade, infotextFacade: InfotextFacade, transferFacade: TransferFacade, transformation: TransferDepartureCacheTransformation, gtfsStopParser: GtfsStopParser);
|
|
14
17
|
getTransferBoardData: RequestHandler;
|
|
15
18
|
private parseTransferBoardsParams;
|
|
16
19
|
private getTimeFrom;
|
|
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
15
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
16
|
};
|
|
17
|
+
var V4TransferBoardsController_1;
|
|
17
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
19
|
exports.V4TransferBoardsController = void 0;
|
|
19
20
|
const TransferBoardFilter_1 = require("../../helpers/TransferBoardFilter");
|
|
@@ -28,13 +29,15 @@ const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/mom
|
|
|
28
29
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
29
30
|
const TransferDepartureCacheTransformation_1 = require("../../service/transformations/TransferDepartureCacheTransformation");
|
|
30
31
|
const DepartureCalculator_1 = require("../../../shared/DepartureCalculator");
|
|
32
|
+
const GtfsStopParser_1 = require("../../../../helpers/GtfsStopParser");
|
|
31
33
|
const DEFAULT_TRANSFER_BOARDS_LIMIT = 8;
|
|
32
|
-
let V4TransferBoardsController = exports.V4TransferBoardsController = class V4TransferBoardsController {
|
|
33
|
-
constructor(stopFacade, infotextFacade, transferFacade, transformation) {
|
|
34
|
+
let V4TransferBoardsController = exports.V4TransferBoardsController = V4TransferBoardsController_1 = class V4TransferBoardsController {
|
|
35
|
+
constructor(stopFacade, infotextFacade, transferFacade, transformation, gtfsStopParser) {
|
|
34
36
|
this.stopFacade = stopFacade;
|
|
35
37
|
this.infotextFacade = infotextFacade;
|
|
36
38
|
this.transferFacade = transferFacade;
|
|
37
39
|
this.transformation = transformation;
|
|
40
|
+
this.gtfsStopParser = gtfsStopParser;
|
|
38
41
|
this.defaultTransferBoardsLimit = DEFAULT_TRANSFER_BOARDS_LIMIT;
|
|
39
42
|
this.getTransferBoardData = async (req, res, next) => {
|
|
40
43
|
const span = (0, trace_provider_1.createChildSpan)("V4TransferBoardsController.getTransferBoardData");
|
|
@@ -48,25 +51,29 @@ let V4TransferBoardsController = exports.V4TransferBoardsController = class V4Tr
|
|
|
48
51
|
}
|
|
49
52
|
//#region GTFS stops
|
|
50
53
|
let stopIds = [];
|
|
51
|
-
let transferCacheDto =
|
|
54
|
+
let transferCacheDto = null;
|
|
52
55
|
let infotextsToInclude = [];
|
|
56
|
+
let stopsInfo = [];
|
|
57
|
+
let transferStop = undefined;
|
|
53
58
|
try {
|
|
54
59
|
if ("aswId" in params && typeof params.aswId === "string") {
|
|
55
60
|
stopIds = await this.stopFacade.getStopIdsForTransferBoardsByAswId(params.aswId);
|
|
56
61
|
//#region Transfer departures and infotexts
|
|
57
62
|
if (stopIds.length === 0) {
|
|
58
|
-
return res.status(404).json(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
return res.status(404).json(V4TransferBoardsController_1.NO_TRANSFERS);
|
|
64
|
+
}
|
|
65
|
+
stopsInfo = await this.stopFacade.getDetailDataFromCacheByStopId(stopIds);
|
|
66
|
+
const normalizedStopId = this.gtfsStopParser.normalizedStopId(params.aswId);
|
|
67
|
+
transferStop = stopsInfo.find((stop) => this.gtfsStopParser.normalizedStopId(stop.stop_id) === normalizedStopId);
|
|
68
|
+
if (!transferStop) {
|
|
69
|
+
return res.status(404).json(V4TransferBoardsController_1.NO_TRANSFERS);
|
|
62
70
|
}
|
|
63
71
|
try {
|
|
64
|
-
const
|
|
65
|
-
this.transferFacade.getTransferCache(stopIds, params.limit, parseInt(params.vehicleRegistrationNumber ?? "0", 10), params.routeType, timeFrom || now),
|
|
66
|
-
this.infotextFacade.getInfotextsCache(stopIds, now, timeFrom),
|
|
67
|
-
]);
|
|
68
|
-
infotextsToInclude = infotexts;
|
|
72
|
+
const transferCache = await this.transferFacade.getTransferCache(transferStop.stop_id, stopIds, params.limit, parseInt(params.vehicleRegistrationNumber ?? "0", 10), params.routeType, timeFrom || now);
|
|
69
73
|
transferCacheDto = transferCache;
|
|
74
|
+
timeFrom = transferCache.delayedTimeFrom;
|
|
75
|
+
const infotexts = await this.infotextFacade.getInfotextsCache(stopIds, now, timeFrom);
|
|
76
|
+
infotextsToInclude = infotexts;
|
|
70
77
|
}
|
|
71
78
|
catch (error) {
|
|
72
79
|
span?.recordException(error);
|
|
@@ -90,20 +97,27 @@ let V4TransferBoardsController = exports.V4TransferBoardsController = class V4Tr
|
|
|
90
97
|
throw error;
|
|
91
98
|
}
|
|
92
99
|
//#endregion
|
|
100
|
+
if (!transferCacheDto.transfers?.length || !transferStop) {
|
|
101
|
+
return res.status(404).json(V4TransferBoardsController_1.NO_TRANSFERS);
|
|
102
|
+
}
|
|
103
|
+
const transferStopName = transferStop.stop_name;
|
|
104
|
+
// filter out stops with different stop_name
|
|
105
|
+
const sameNameStopIds = Array.from(new Set(stopsInfo.filter((stop) => stop.stop_name === transferStopName).map((stop) => stop.stop_id)).values());
|
|
93
106
|
// add predictedDeparture to transfers
|
|
94
107
|
transferCacheDto.transfers = transferCacheDto.transfers.map((t) => {
|
|
95
108
|
t.departure.predictedDepartureDate = DepartureCalculator_1.DepartureCalculator.getPredictedDepartureTime(new Date(t.departure.departure_datetime), t.departure.arrival_datetime ? new Date(t.departure.arrival_datetime) : null, t.position?.delay ?? null);
|
|
96
109
|
t.departure.predictedDepartureTimestamp = t.departure.predictedDepartureDate.getTime();
|
|
97
110
|
return t;
|
|
98
111
|
});
|
|
112
|
+
transferCacheDto.transfers = TransferBoardFilter_1.TransferBoardFilter.minimalTransferTime(transferCacheDto.transfers, transferCacheDto.delayedTimeFrom);
|
|
113
|
+
transferCacheDto.transfers = TransferBoardFilter_1.TransferBoardFilter.sameStopNameTransfer(transferCacheDto.transfers, transferStop, sameNameStopIds);
|
|
99
114
|
TransferBoardSorter_1.TransferBoardSorter.sortDepartures(transferCacheDto.transfers);
|
|
100
115
|
const transformedData = this.transformation.transformArray(transferCacheDto.transfers);
|
|
101
|
-
const filteredData = TransferBoardFilter_1.TransferBoardFilter.filterDepartures(transformedData, params.limit,
|
|
116
|
+
const filteredData = TransferBoardFilter_1.TransferBoardFilter.filterDepartures(transformedData, params.limit, transferCacheDto.delayedTimeFrom);
|
|
102
117
|
const output = {
|
|
103
118
|
// possibly share arrival_datetime of the current vehicle?
|
|
104
|
-
platform_code:
|
|
105
|
-
|
|
106
|
-
stop_name: transferCacheDto.currentTrip.stopTime?.stop_name,
|
|
119
|
+
platform_code: transferStop.platform_code,
|
|
120
|
+
stop_name: transferStop.stop_name,
|
|
107
121
|
departures: filteredData,
|
|
108
122
|
infotexts: infotextsToInclude,
|
|
109
123
|
icons: [],
|
|
@@ -141,15 +155,18 @@ let V4TransferBoardsController = exports.V4TransferBoardsController = class V4Tr
|
|
|
141
155
|
return arrivalDate.getTime();
|
|
142
156
|
}
|
|
143
157
|
};
|
|
144
|
-
|
|
158
|
+
V4TransferBoardsController.NO_TRANSFERS = { departures: [], infotexts: [] };
|
|
159
|
+
exports.V4TransferBoardsController = V4TransferBoardsController = V4TransferBoardsController_1 = __decorate([
|
|
145
160
|
(0, tsyringe_1.injectable)(),
|
|
146
161
|
__param(0, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.StopFacade)),
|
|
147
162
|
__param(1, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.InfotextFacade)),
|
|
148
163
|
__param(2, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.TransferFacade)),
|
|
149
164
|
__param(3, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.TransferDepartureCacheTransformation)),
|
|
165
|
+
__param(4, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.GtfsStopParser)),
|
|
150
166
|
__metadata("design:paramtypes", [StopFacade_1.StopFacade,
|
|
151
167
|
InfotextFacade_1.InfotextFacade,
|
|
152
168
|
TransferFacade_1.TransferFacade,
|
|
153
|
-
TransferDepartureCacheTransformation_1.TransferDepartureCacheTransformation
|
|
169
|
+
TransferDepartureCacheTransformation_1.TransferDepartureCacheTransformation,
|
|
170
|
+
GtfsStopParser_1.GtfsStopParser])
|
|
154
171
|
], V4TransferBoardsController);
|
|
155
172
|
//# sourceMappingURL=V4TransferBoardsController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"V4TransferBoardsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/controllers/v4/V4TransferBoardsController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"V4TransferBoardsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/controllers/v4/V4TransferBoardsController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAEA,2EAA0E;AAC1E,2EAA0E;AAC1E,qDAAoD;AACpD,wEAAuE;AACvE,gEAA+D;AAC/D,wEAAuE;AACvE,4CAA8C;AAC9C,+FAA6F;AAE7F,gGAA+D;AAE/D,iEAAwE;AAExE,6HAA4H;AAC5H,6EAAqE;AACrE,uEAAyD;AAGzD,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAGjC,IAAM,0BAA0B,uEAAhC,MAAM,0BAA0B;IAInC,YACmC,UAA8B,EAC1B,cAAsC,EACtC,cAAsC,EAChB,cAA4D,EAClF,cAAsC;QAJlC,eAAU,GAAV,UAAU,CAAY;QAClB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,mBAAc,GAAd,cAAc,CAAgB;QACR,mBAAc,GAAd,cAAc,CAAsC;QAC1E,mBAAc,GAAd,cAAc,CAAgB;QAP5D,+BAA0B,GAAG,6BAA6B,CAAC;QAUrE,yBAAoB,GAAmB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACnE,MAAM,IAAI,GAAG,IAAA,gCAAe,EAAC,iDAAiD,CAAC,CAAC;YAChF,IAAI;gBACA,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACzD,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEvG,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,QAAQ,GAAG,IAAI,CAAC;gBACpB,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;oBAC1B,QAAQ,GAAG,yBAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,yBAAgB,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;iBAC7E;gBAED,oBAAoB;gBACpB,IAAI,OAAO,GAAa,EAAE,CAAC;gBAC3B,IAAI,gBAAgB,GAA0B,IAAI,CAAC;gBACnD,IAAI,kBAAkB,GAAmC,EAAE,CAAC;gBAE5D,IAAI,SAAS,GAAoB,EAAE,CAAC;gBACpC,IAAI,YAAY,GAA8B,SAAS,CAAC;gBAExD,IAAI;oBACA,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;wBACvD,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,kCAAkC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACjF,2CAA2C;wBAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;4BACtB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,4BAA0B,CAAC,YAAY,CAAC,CAAC;yBACxE;wBAED,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;wBAE1E,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC5E,YAAY,GAAG,SAAS,CAAC,IAAI,CACzB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,gBAAgB,CACpF,CAAC;wBAEF,IAAI,CAAC,YAAY,EAAE;4BACf,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,4BAA0B,CAAC,YAAY,CAAC,CAAC;yBACxE;wBAED,IAAI;4BACA,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC5D,YAAY,CAAC,OAAO,EACpB,OAAO,EACP,MAAM,CAAC,KAAK,EACZ,QAAQ,CAAC,MAAM,CAAC,yBAAyB,IAAI,GAAG,EAAE,EAAE,CAAC,EACrD,MAAM,CAAC,SAAS,EAChB,QAAQ,IAAI,GAAG,CAClB,CAAC;4BACF,gBAAgB,GAAG,aAAa,CAAC;4BACjC,QAAQ,GAAG,aAAa,CAAC,eAAe,CAAC;4BACzC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;4BACtF,kBAAkB,GAAG,SAAS,CAAC;yBAClC;wBAAC,OAAO,KAAK,EAAE;4BACZ,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;4BAC7B,MAAM,KAAK,CAAC;yBACf;wBACD,YAAY;qBACf;yBAAM,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;wBAC9D,yBAAyB;wBACzB,iEAAiE;wBACjE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC,CAAC;qBACxF;yBAAM;wBACH,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;4BACxB,OAAO,EAAE,4EAA4E;yBACxF,CAAC,CAAC;qBACN;iBACJ;gBAAC,OAAO,KAAK,EAAE;oBACZ,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;oBAC7B,MAAM,KAAK,CAAC;iBACf;gBACD,YAAY;gBAEZ,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE;oBACtD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,4BAA0B,CAAC,YAAY,CAAC,CAAC;iBACxE;gBAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAC;gBAEhD,4CAA4C;gBAC5C,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAC9B,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAChH,CAAC;gBAEF,sCAAsC;gBACtC,gBAAgB,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC9D,CAAC,CAAC,SAAS,CAAC,sBAAsB,GAAG,yCAAmB,CAAC,yBAAyB,CAC9E,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,EACxC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,EAC5E,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,CAC5B,CAAC;oBAEF,CAAC,CAAC,SAAS,CAAC,2BAA2B,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;oBACvF,OAAO,CAAC,CAAC;gBACb,CAAC,CAAC,CAAC;gBAEH,gBAAgB,CAAC,SAAS,GAAG,yCAAmB,CAAC,mBAAmB,CAChE,gBAAgB,CAAC,SAAS,EAC1B,gBAAgB,CAAC,eAAe,CACnC,CAAC;gBAEF,gBAAgB,CAAC,SAAS,GAAG,yCAAmB,CAAC,oBAAoB,CACjE,gBAAgB,CAAC,SAAS,EAC1B,YAAY,EACZ,eAAe,CAClB,CAAC;gBAEF,yCAAmB,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAE/D,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAEvF,MAAM,YAAY,GAAG,yCAAmB,CAAC,gBAAgB,CACrD,eAAe,EACf,MAAM,CAAC,KAAK,EACZ,gBAAgB,CAAC,eAAe,CACnC,CAAC;gBAEF,MAAM,MAAM,GAAyB;oBACjC,0DAA0D;oBAC1D,aAAa,EAAE,YAAY,CAAC,aAAa;oBACzC,SAAS,EAAE,YAAY,CAAC,SAAS;oBACjC,UAAU,EAAE,YAAY;oBACxB,SAAS,EAAE,kBAAkB;oBAC7B,KAAK,EAAE,EAAE;iBACZ,CAAC;gBAEF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACvC;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;oBAAS;gBACN,IAAI,EAAE,GAAG,EAAE,CAAC;aACf;QACL,CAAC,CAAC;IArIC,CAAC;IAuII,yBAAyB,CAAC,KAAe;QAC7C,OAAO;YACH,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAkB;YAC7C,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAA6B;YACxD,UAAU,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAA6B;YAClE,yBAAyB,EAAE,CAAC,KAAK,CAAC,yBAAyB,IAAI,IAAI,CAAkB;YACrF,SAAS,EAAE,KAAK,CAAC,SAA8B;YAC/C,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAkB;YACnD,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,0BAA0B,CAAsB;SAC/E,CAAC;IACN,CAAC;IAEO,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAgB;QACrD,IAAI,CAAC,SAAS,EAAE,gBAAgB,IAAI,CAAC,QAAQ,EAAE;YAC3C,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;SAC/B;QACD,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YACjB,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC;SAChC;QACD,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClE,OAAO,WAAW,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;;AAtKuB,uCAAY,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,AAApC,CAAqC;qCADhE,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,UAAU,CAAC,CAAA;IAC7B,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,cAAc,CAAC,CAAA;IACjC,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,cAAc,CAAC,CAAA;IACjC,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,oCAAoC,CAAC,CAAA;IACvD,WAAA,IAAA,iBAAM,EAAC,uBAAU,CAAC,cAAc,CAAC,CAAA;qCAJiB,uBAAU;QACF,+BAAc;QACd,+BAAc;QACQ,2EAAoC;QAC1D,+BAAc;GATpE,0BAA0B,CAwKtC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IStopCacheDto } from "../../../schema-definitions/ropid-gtfs/interfaces/IStopDto";
|
|
2
|
+
import { IDepartureWithPosition, IV4TransferDepartureOutputDto } from "../index";
|
|
2
3
|
export declare class TransferBoardFilter {
|
|
3
|
-
static filterDepartures(transfers: IV4TransferDepartureOutputDto[], limit: number, timeFrom:
|
|
4
|
+
static filterDepartures(transfers: IV4TransferDepartureOutputDto[], limit: number, timeFrom: Date): IV4TransferDepartureOutputDto[];
|
|
5
|
+
static minimalTransferTime(transfers: IDepartureWithPosition[], delayedTimeFrom: Date): IDepartureWithPosition[];
|
|
6
|
+
static sameStopNameTransfer(transfers: IDepartureWithPosition[], currentStop: IStopCacheDto, allowedStopIds: string[]): IDepartureWithPosition[];
|
|
4
7
|
private static isInRange;
|
|
5
8
|
}
|
|
@@ -1,14 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TransferBoardFilter = void 0;
|
|
4
|
+
const RouteTypeEnums_1 = require("../../../helpers/RouteTypeEnums");
|
|
5
|
+
const DEFAULT_TRANSFER_TIME_MS = 60 * 1000;
|
|
6
|
+
const TRANSFER_TIMES_MS = new Map([
|
|
7
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.BUS, 60000],
|
|
8
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.EXT_MISCELLANEOUS, 60000],
|
|
9
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.FERRY, 120000],
|
|
10
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.FUNICULAR, 120000],
|
|
11
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.METRO, 120000],
|
|
12
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.TRAIN, 120000],
|
|
13
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.TRAM, 60000],
|
|
14
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.TROLLEYBUS, 60000],
|
|
15
|
+
]);
|
|
16
|
+
const DIFFERENT_STOP_NAME_ALLOWED = new Map([
|
|
17
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.BUS, false],
|
|
18
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.EXT_MISCELLANEOUS, true],
|
|
19
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.FERRY, true],
|
|
20
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.FUNICULAR, true],
|
|
21
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.METRO, true],
|
|
22
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.TRAIN, true],
|
|
23
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.TRAM, false],
|
|
24
|
+
[RouteTypeEnums_1.GTFSRouteTypeEnum.TROLLEYBUS, false],
|
|
25
|
+
]);
|
|
4
26
|
class TransferBoardFilter {
|
|
5
27
|
static filterDepartures(transfers, limit, timeFrom) {
|
|
6
28
|
const filteredDepartures = [];
|
|
29
|
+
const timeFromMs = timeFrom.getTime();
|
|
7
30
|
for (const transfer of transfers) {
|
|
8
31
|
if (filteredDepartures.length === limit) {
|
|
9
32
|
break;
|
|
10
33
|
}
|
|
11
|
-
if (!this.isInRange(transfer,
|
|
34
|
+
if (!this.isInRange(transfer, timeFromMs)) {
|
|
12
35
|
continue;
|
|
13
36
|
}
|
|
14
37
|
filteredDepartures.push(transfer);
|
|
@@ -16,6 +39,27 @@ class TransferBoardFilter {
|
|
|
16
39
|
// Departures are already sorted so that metro ones are first
|
|
17
40
|
return filteredDepartures;
|
|
18
41
|
}
|
|
42
|
+
static minimalTransferTime(transfers, delayedTimeFrom) {
|
|
43
|
+
const arrivalTime = delayedTimeFrom.getTime();
|
|
44
|
+
return transfers.filter((t) => {
|
|
45
|
+
const transferTimeMs = TRANSFER_TIMES_MS.get(t.departure.route_type) || DEFAULT_TRANSFER_TIME_MS;
|
|
46
|
+
if (t.departure.predictedDepartureTimestamp == null) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return arrivalTime + transferTimeMs < t.departure.predictedDepartureTimestamp;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
static sameStopNameTransfer(transfers, currentStop, allowedStopIds) {
|
|
53
|
+
return transfers.filter((t) => {
|
|
54
|
+
if (t.departure.stop_id === currentStop.stop_id) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
if (DIFFERENT_STOP_NAME_ALLOWED.get(t.departure.route_type)) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
return allowedStopIds.includes(t.departure.stop_id);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
19
63
|
static isInRange(departure, timeFrom) {
|
|
20
64
|
const timeRangeStart = timeFrom;
|
|
21
65
|
// add one hour
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransferBoardFilter.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/helpers/TransferBoardFilter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"TransferBoardFilter.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/helpers/TransferBoardFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,7 +113,8 @@ export interface ITransferOutputDto {
|
|
|
113
113
|
}
|
|
114
114
|
export interface IV4TransferDto {
|
|
115
115
|
transfers: IDepartureWithPosition[];
|
|
116
|
-
|
|
116
|
+
delayedTimeFrom: Date;
|
|
117
|
+
plannedTimeFrom: Date;
|
|
117
118
|
}
|
|
118
119
|
export interface IDepartureWithPosition {
|
|
119
120
|
departure: IPublicGtfsDepartureCacheDto & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,4CAA0B;AAC1B,2CAAyB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,4CAA0B;AAC1B,2CAAyB;AAkKzB,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;AACnB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,yCAAuB,CAAA;AAC3B,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,eAQX;AARD,WAAY,eAAe;IACvB,gCAAa,CAAA;IACb,2CAAwB,CAAA;IACxB,0DAAuC,CAAA;IACvC,oDAAiC,CAAA;IACjC,mEAAgD,CAAA;IAChD,qEAAkD,CAAA;IAClD,8EAA2D,CAAA;AAC/D,CAAC,EARW,eAAe,+BAAf,eAAe,QAQ1B;AAED,IAAY,aAMX;AAND,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,mCAAkB,CAAA;IAClB,8BAA8B;AAClC,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CisStopGroupRepository } from "../../../ropid-gtfs/data-access/CisStopGroupRepository";
|
|
2
2
|
import { GtfsStopsRedisRepository } from "../../../ropid-gtfs/data-access/redis/GtfsStopsRedisRepository";
|
|
3
|
+
import { IStopCacheDto } from "../../../../schema-definitions/ropid-gtfs/interfaces/IStopDto";
|
|
3
4
|
export declare class StopFacade {
|
|
4
5
|
private cisStopGroupsRepository;
|
|
5
6
|
private gtfsStopsRedisRepository;
|
|
@@ -14,5 +15,7 @@ export declare class StopFacade {
|
|
|
14
15
|
* Retrieve ASW node ID for given ASW stop ID and then returns GTFS stop IDs for this ASW node
|
|
15
16
|
*/
|
|
16
17
|
getStopIdsForTransferBoardsByAswId(aswId: string): Promise<string[]>;
|
|
18
|
+
getDetailDataFromCacheByStopId(stopId: string[]): Promise<IStopCacheDto[]>;
|
|
19
|
+
getDetailDataFromCacheByAswId(aswIds: string[]): Promise<IStopCacheDto[]>;
|
|
17
20
|
private getStopIdsForTransferBoardsByAswNode;
|
|
18
21
|
}
|
|
@@ -80,6 +80,13 @@ let StopFacade = exports.StopFacade = class StopFacade {
|
|
|
80
80
|
async getStopIdsForTransferBoardsByAswId(aswId) {
|
|
81
81
|
return await this.getStopIdsForTransferBoardsByAswNode(this.gtfsStopParser.getAswNodeFromId(aswId));
|
|
82
82
|
}
|
|
83
|
+
async getDetailDataFromCacheByStopId(stopId) {
|
|
84
|
+
const aswIds = stopId.map((stopId) => this.gtfsStopParser.normalizedStopId(stopId));
|
|
85
|
+
return this.getDetailDataFromCacheByAswId(aswIds);
|
|
86
|
+
}
|
|
87
|
+
async getDetailDataFromCacheByAswId(aswIds) {
|
|
88
|
+
return await this.gtfsStopsRedisRepository.getGtfsStopsDetailsByAswId(aswIds);
|
|
89
|
+
}
|
|
83
90
|
async getStopIdsForTransferBoardsByAswNode(aswNodeId) {
|
|
84
91
|
try {
|
|
85
92
|
return await this.gtfsStopsRedisRepository.getGtfsStopIdsByAswNode(aswNodeId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StopFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/StopFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uEAAyD;AACzD,qDAAoD;AACpD,uDAA+C;AAC/C,mGAA2F;AAC3F,6GAAqG;AACrG,iEAAwE;AACxE,6EAA8F;
|
|
1
|
+
{"version":3,"file":"StopFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/StopFacade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { IDepartureWithPosition, ITransferOutputDto, IV4TransferDto } from "../..";
|
|
2
1
|
import { Moment } from "@golemio/core/dist/shared/moment-timezone";
|
|
3
|
-
import {
|
|
2
|
+
import { IDepartureWithPosition, ITransferOutputDto, IV4TransferDto } from "../..";
|
|
3
|
+
import { DeparturesRepository } from "../../data-access";
|
|
4
|
+
import { DelayComputationRepository } from "../../../public/data-access/redis/DelayComputationRepository";
|
|
4
5
|
import { PublicGtfsDepartureRepository } from "../../../public/data-access/redis/PublicGtfsDepartureRepository";
|
|
5
|
-
import {
|
|
6
|
+
import { PublicStopTimeRepository } from "../../../public/data-access/redis/PublicStopTimeRepository";
|
|
6
7
|
import { PublicVehiclePositionsRepository } from "../../../public/data-access/redis/PublicVehiclePositionsRepository";
|
|
8
|
+
import { IPublicGtfsDepartureCacheDto } from "../../../../schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto";
|
|
7
9
|
import { IPublicApiCacheDto } from "../../../../schema-definitions/vehicle-positions/redis/interfaces/IPublicApiCacheDto";
|
|
8
|
-
import {
|
|
9
|
-
import { DelayComputationRepository } from "../../../public/data-access/redis/DelayComputationRepository";
|
|
10
|
-
import { DeparturesRepository } from "../../data-access";
|
|
10
|
+
import { TransferDepartureTransformation } from "../transformations/TransferDepartureTransformation";
|
|
11
11
|
export declare class TransferFacade {
|
|
12
12
|
private publicDepartureRepository;
|
|
13
13
|
private departuresRepository;
|
|
@@ -15,11 +15,18 @@ export declare class TransferFacade {
|
|
|
15
15
|
private tripRepository;
|
|
16
16
|
private stopTimeRepository;
|
|
17
17
|
private delayComputationRepository;
|
|
18
|
+
private static readonly MINUTE_AS_MS;
|
|
19
|
+
private static readonly OPEN_MINUTES_IN_PAST;
|
|
20
|
+
private static readonly OPEN_MINUTES_IN_PAST_MS;
|
|
18
21
|
constructor(publicDepartureRepository: PublicGtfsDepartureRepository, departuresRepository: DeparturesRepository, departureTransformation: TransferDepartureTransformation, tripRepository: PublicVehiclePositionsRepository, stopTimeRepository: PublicStopTimeRepository, delayComputationRepository: DelayComputationRepository);
|
|
19
22
|
getTransferDepartures(stopIds: string[], tripNumber: string | null, currentMoment: Moment, minutesOffset: number, timeZone?: string): Promise<ITransferOutputDto[]>;
|
|
20
|
-
|
|
21
|
-
private
|
|
22
|
-
|
|
23
|
+
private static sortByDepartureTime;
|
|
24
|
+
private static isDifferentLine;
|
|
25
|
+
private calculateTimeFrom;
|
|
26
|
+
getTransferCache(stopId: string, stopIds: string[], limit: number, reqNumber: number, vehicleType: number, timeFrom: Date): Promise<IV4TransferDto>;
|
|
27
|
+
private static findStopTimeByStopId;
|
|
28
|
+
private findVehicleArrival;
|
|
29
|
+
processMultiplePositionsForDeparturesAtOnce(departures: IPublicGtfsDepartureCacheDto[], positionsByTrip: Map<string, IPublicApiCacheDto[]>): Promise<IDepartureWithPosition[]>;
|
|
23
30
|
/**
|
|
24
31
|
* Fallback options as defined by ROPID
|
|
25
32
|
*/
|
|
@@ -14,26 +14,27 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
15
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
16
|
};
|
|
17
|
+
var TransferFacade_1;
|
|
17
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
19
|
exports.TransferFacade = void 0;
|
|
20
|
+
const monitoring_1 = require("@golemio/core/dist/monitoring");
|
|
21
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
22
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
23
|
+
const DateTimeUtils_1 = require("../../../../helpers/DateTimeUtils");
|
|
24
|
+
const RouteTypeEnums_1 = require("../../../../helpers/RouteTypeEnums");
|
|
19
25
|
const pid_1 = require("../..");
|
|
26
|
+
const data_access_1 = require("../../data-access");
|
|
20
27
|
const OgPidToken_1 = require("../../ioc/OgPidToken");
|
|
21
28
|
const IPIDDepartureQueryOptions_1 = __importDefault(require("../../models/helpers/interfaces/IPIDDepartureQueryOptions"));
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const TransferDepartureTransformation_1 = require("../transformations/TransferDepartureTransformation");
|
|
29
|
+
const PIDDepartureModel_1 = __importDefault(require("../../models/helpers/PIDDepartureModel"));
|
|
30
|
+
const DelayComputationRepository_1 = require("../../../public/data-access/redis/DelayComputationRepository");
|
|
25
31
|
const PublicGtfsDepartureRepository_1 = require("../../../public/data-access/redis/PublicGtfsDepartureRepository");
|
|
26
|
-
const PublicVehiclePositionsRepository_1 = require("../../../public/data-access/redis/PublicVehiclePositionsRepository");
|
|
27
32
|
const PublicStopTimeRepository_1 = require("../../../public/data-access/redis/PublicStopTimeRepository");
|
|
28
|
-
const
|
|
29
|
-
const monitoring_1 = require("@golemio/core/dist/monitoring");
|
|
30
|
-
const PIDDepartureModel_1 = __importDefault(require("../../models/helpers/PIDDepartureModel"));
|
|
33
|
+
const PublicVehiclePositionsRepository_1 = require("../../../public/data-access/redis/PublicVehiclePositionsRepository");
|
|
31
34
|
const shared_1 = require("../../../shared");
|
|
32
|
-
const data_access_1 = require("../../data-access");
|
|
33
35
|
const const_1 = require("../../../../const");
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
let TransferFacade = exports.TransferFacade = class TransferFacade {
|
|
36
|
+
const TransferDepartureTransformation_1 = require("../transformations/TransferDepartureTransformation");
|
|
37
|
+
let TransferFacade = exports.TransferFacade = TransferFacade_1 = class TransferFacade {
|
|
37
38
|
constructor(publicDepartureRepository, departuresRepository, departureTransformation, tripRepository, stopTimeRepository, delayComputationRepository) {
|
|
38
39
|
this.publicDepartureRepository = publicDepartureRepository;
|
|
39
40
|
this.departuresRepository = departuresRepository;
|
|
@@ -77,14 +78,69 @@ let TransferFacade = exports.TransferFacade = class TransferFacade {
|
|
|
77
78
|
}
|
|
78
79
|
return transferDepartures;
|
|
79
80
|
}
|
|
80
|
-
|
|
81
|
+
static sortByDepartureTime(a, b) {
|
|
82
|
+
if (a.departure_datetime < b.departure_datetime) {
|
|
83
|
+
return -1;
|
|
84
|
+
}
|
|
85
|
+
if (a.departure_datetime > b.departure_datetime) {
|
|
86
|
+
return 1;
|
|
87
|
+
}
|
|
88
|
+
return 0;
|
|
89
|
+
}
|
|
90
|
+
static isDifferentLine(departure, position) {
|
|
91
|
+
if (departure.trip_id === position.gtfs_trip_id) {
|
|
92
|
+
return false; // same trip = remove itself
|
|
93
|
+
}
|
|
94
|
+
if (departure.route_type !== position.route_type) {
|
|
95
|
+
return true; // different means of transport, definitely different line
|
|
96
|
+
}
|
|
97
|
+
// filter out same line
|
|
98
|
+
return departure.route_short_name !== position.gtfs_route_short_name;
|
|
99
|
+
}
|
|
100
|
+
calculateTimeFrom(currentArrival, currentPosition, delayedTimeFrom, plannedTimeFrom) {
|
|
101
|
+
const arrivalDate = new Date(currentArrival.arrival_datetime);
|
|
102
|
+
// arrival before expected time (negative number) is taken as 0 delay
|
|
103
|
+
// arrival after expected time (positive number) is taken as is
|
|
104
|
+
const delayOnArrivalMs = Math.max(currentPosition.delay ?? 0, 0) * 1000;
|
|
105
|
+
delayedTimeFrom.setTime(arrivalDate.getTime() + delayOnArrivalMs);
|
|
106
|
+
plannedTimeFrom.setTime(arrivalDate.getTime());
|
|
107
|
+
}
|
|
108
|
+
async getTransferCache(stopId, stopIds, limit, reqNumber, vehicleType, timeFrom) {
|
|
81
109
|
const span = (0, monitoring_1.createChildSpan)(`Departures.getTransferCache`);
|
|
82
110
|
span?.setAttributes({ stopIds, limit, reqNumber, vehicleType });
|
|
111
|
+
let delayedTimeFrom = new Date(timeFrom.getTime());
|
|
112
|
+
let plannedTimeFrom = new Date(timeFrom.getTime());
|
|
113
|
+
let currentArrival = null;
|
|
83
114
|
try {
|
|
115
|
+
// 1. find the vehicle
|
|
116
|
+
const currentPosition = await this.tripRepository.getDetailedVehiclePosition(`service-${vehicleType}-${reqNumber}`);
|
|
117
|
+
if (currentPosition) {
|
|
118
|
+
// vehicle is on the map
|
|
119
|
+
// 2. find its arrival to the stop-id
|
|
120
|
+
currentArrival = await this.findVehicleArrival(currentPosition, stopIds, stopId);
|
|
121
|
+
}
|
|
122
|
+
if (currentPosition && currentArrival) {
|
|
123
|
+
this.calculateTimeFrom(currentArrival, currentPosition, delayedTimeFrom, plannedTimeFrom);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// Vehicle does not ride into such stop-ids, or vehicle does not have Position
|
|
127
|
+
return {
|
|
128
|
+
transfers: [],
|
|
129
|
+
delayedTimeFrom,
|
|
130
|
+
plannedTimeFrom,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
// timeFrom in query can be too early, minimum is the real arrival of the vehicle
|
|
134
|
+
if (timeFrom.getTime() > delayedTimeFrom.getTime()) {
|
|
135
|
+
delayedTimeFrom = new Date(timeFrom);
|
|
136
|
+
plannedTimeFrom = new Date(timeFrom);
|
|
137
|
+
}
|
|
138
|
+
const delayMinutes = Math.abs(Math.floor((delayedTimeFrom.getTime() - plannedTimeFrom.getTime()) / TransferFacade_1.MINUTE_AS_MS));
|
|
84
139
|
let departureEntities = [];
|
|
85
140
|
try {
|
|
86
|
-
|
|
87
|
-
|
|
141
|
+
// 3. find departures from all stop_ids in Node
|
|
142
|
+
// look forward 1 hour (add delay + open minutes), see JIS Transferboards Design Document
|
|
143
|
+
departureEntities = await this.publicDepartureRepository.getPublicGtfsDepartureCache(stopIds, 60 + TransferFacade_1.OPEN_MINUTES_IN_PAST + delayMinutes, new Date(plannedTimeFrom.getTime() - TransferFacade_1.OPEN_MINUTES_IN_PAST_MS), Math.max(10, limit * 5) // should be (at least 10) 5x the limit from request
|
|
88
144
|
);
|
|
89
145
|
}
|
|
90
146
|
catch (error) {
|
|
@@ -94,40 +150,30 @@ let TransferFacade = exports.TransferFacade = class TransferFacade {
|
|
|
94
150
|
}
|
|
95
151
|
throw new golemio_errors_1.GeneralError("Failed to publicGtfsDepartureCache", this.constructor.name, error, 500);
|
|
96
152
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (currentPosition) {
|
|
101
|
-
const departureIndex = departureEntities.findIndex((departure) => {
|
|
102
|
-
return departure.trip_id === currentPosition.gtfs_trip_id;
|
|
103
|
-
});
|
|
104
|
-
// Remove currentDeparture from departureEntities
|
|
105
|
-
if (departureIndex !== -1) {
|
|
106
|
-
currentDeparture = departureEntities.splice(departureIndex, 1)[0];
|
|
107
|
-
}
|
|
108
|
-
const stopTimes = (await this.stopTimeRepository.getPublicStopTimeCache(currentPosition.vehicle_id, currentPosition.gtfs_trip_id)) || [];
|
|
109
|
-
currentStopTime = stopTimes.find((stopTime) => stopIds.includes(stopTime.stop_id)) ?? null;
|
|
110
|
-
}
|
|
111
|
-
if (currentPosition && !currentDeparture) {
|
|
112
|
-
// Important Fallback for last-stop of a trip
|
|
113
|
-
// because there is no Departure from such last-stop
|
|
114
|
-
currentDeparture = await this.findFallbackDeparture(currentPosition, stopIds);
|
|
115
|
-
}
|
|
153
|
+
// Remove current line (and trip) from departureEntities
|
|
154
|
+
departureEntities = departureEntities.filter((departure) => TransferFacade_1.isDifferentLine(departure, currentPosition));
|
|
155
|
+
departureEntities.sort(TransferFacade_1.sortByDepartureTime);
|
|
116
156
|
// to be able to load future trips of Before_Track positioned vehicle
|
|
117
157
|
const omitFutureTrips = false;
|
|
118
|
-
|
|
119
|
-
|
|
158
|
+
const seenTripIds = new Map();
|
|
159
|
+
// One trip might go through more Stops in one Node (Nadrazi Vysocany)
|
|
160
|
+
// filter out departures of already seen trip
|
|
161
|
+
departureEntities = departureEntities.filter((departure) => {
|
|
162
|
+
if (seenTripIds.has(departure.trip_id)) {
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
seenTripIds.set(departure.trip_id, true);
|
|
166
|
+
return true;
|
|
167
|
+
});
|
|
168
|
+
const uniqueDeparturesTripIds = Array.from(seenTripIds.keys());
|
|
120
169
|
const positionsByTrip = await this.tripRepository.getAllVehiclePositionsForMultipleTrips(uniqueDeparturesTripIds, omitFutureTrips);
|
|
121
170
|
let transfers = [];
|
|
122
|
-
const moreDepartures = await this.processMultiplePositionsForDeparturesAtOnce(departureEntities, positionsByTrip
|
|
171
|
+
const moreDepartures = await this.processMultiplePositionsForDeparturesAtOnce(departureEntities, positionsByTrip);
|
|
123
172
|
transfers.push(...moreDepartures);
|
|
124
173
|
return {
|
|
125
|
-
currentTrip: {
|
|
126
|
-
departure: currentDeparture,
|
|
127
|
-
position: currentPosition,
|
|
128
|
-
stopTime: currentStopTime,
|
|
129
|
-
},
|
|
130
174
|
transfers,
|
|
175
|
+
delayedTimeFrom,
|
|
176
|
+
plannedTimeFrom,
|
|
131
177
|
};
|
|
132
178
|
}
|
|
133
179
|
catch (error) {
|
|
@@ -141,16 +187,24 @@ let TransferFacade = exports.TransferFacade = class TransferFacade {
|
|
|
141
187
|
span?.end();
|
|
142
188
|
}
|
|
143
189
|
}
|
|
144
|
-
|
|
190
|
+
static findStopTimeByStopId(stopTimes, stopIds) {
|
|
191
|
+
return stopTimes.find((stopTime) => stopIds.includes(stopTime.stop_id)) || null;
|
|
192
|
+
}
|
|
193
|
+
async findVehicleArrival(currentPosition, stopIds, stopId) {
|
|
145
194
|
const stopTimes = (await this.delayComputationRepository.getDelayComputationCacheProperty(currentPosition.gtfs_trip_id, "stop_times"));
|
|
146
195
|
if (!stopTimes?.stop_times?.length) {
|
|
147
196
|
return null;
|
|
148
197
|
}
|
|
149
|
-
|
|
198
|
+
// It is possible (based on incoming stop_ids), we won't find departure
|
|
199
|
+
// for this vehicle directly on this stopId...
|
|
200
|
+
let departureAtStopId = TransferFacade_1.findStopTimeByStopId(stopTimes.stop_times, [stopId]);
|
|
201
|
+
// But it can be in the whole Node = iterate through all stop_ids then.
|
|
202
|
+
departureAtStopId ??= TransferFacade_1.findStopTimeByStopId(stopTimes.stop_times, stopIds);
|
|
150
203
|
if (departureAtStopId) {
|
|
151
204
|
const arrivalDate = DateTimeUtils_1.DateTimeUtils.getStopDateTimeForTripOrigin(departureAtStopId.arrival_time_seconds, currentPosition.detailed_info.origin_timestamp);
|
|
152
205
|
const departureDate = DateTimeUtils_1.DateTimeUtils.getStopDateTimeForTripOrigin(departureAtStopId.departure_time_seconds, currentPosition.detailed_info.origin_timestamp);
|
|
153
206
|
return {
|
|
207
|
+
stop_name: departureAtStopId.stop.stop_name,
|
|
154
208
|
stop_id: departureAtStopId.stop_id,
|
|
155
209
|
departure_datetime: departureDate.toISOString(),
|
|
156
210
|
arrival_datetime: arrivalDate.toISOString(),
|
|
@@ -164,7 +218,7 @@ let TransferFacade = exports.TransferFacade = class TransferFacade {
|
|
|
164
218
|
}
|
|
165
219
|
return null;
|
|
166
220
|
}
|
|
167
|
-
async processMultiplePositionsForDeparturesAtOnce(departures, positionsByTrip
|
|
221
|
+
async processMultiplePositionsForDeparturesAtOnce(departures, positionsByTrip) {
|
|
168
222
|
const outputGroup = [];
|
|
169
223
|
const trainIdTripIdTuples = [];
|
|
170
224
|
const trainDepartures = new Map();
|
|
@@ -200,7 +254,7 @@ let TransferFacade = exports.TransferFacade = class TransferFacade {
|
|
|
200
254
|
for (const [tripId, stopTimeCache] of Array.from(stopTimeCachesByTripId.entries())) {
|
|
201
255
|
const departure = trainDepartures.get(tripId);
|
|
202
256
|
const position = positionsByTrip.get(tripId)[0];
|
|
203
|
-
const stopTime = stopTimeCache.find((stopTime) =>
|
|
257
|
+
const stopTime = stopTimeCache.find((stopTime) => departure.stop_id === stopTime.stop_id);
|
|
204
258
|
outputGroup.push({
|
|
205
259
|
departure,
|
|
206
260
|
position: position || null,
|
|
@@ -227,7 +281,10 @@ let TransferFacade = exports.TransferFacade = class TransferFacade {
|
|
|
227
281
|
};
|
|
228
282
|
}
|
|
229
283
|
};
|
|
230
|
-
|
|
284
|
+
TransferFacade.MINUTE_AS_MS = 60 * 1000;
|
|
285
|
+
TransferFacade.OPEN_MINUTES_IN_PAST = 15;
|
|
286
|
+
TransferFacade.OPEN_MINUTES_IN_PAST_MS = TransferFacade_1.OPEN_MINUTES_IN_PAST * TransferFacade_1.MINUTE_AS_MS;
|
|
287
|
+
exports.TransferFacade = TransferFacade = TransferFacade_1 = __decorate([
|
|
231
288
|
(0, tsyringe_1.injectable)(),
|
|
232
289
|
__param(0, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.PublicGtfsDepartureRepository)),
|
|
233
290
|
__param(1, (0, tsyringe_1.inject)(OgPidToken_1.OgPidToken.DeparturesRepository)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransferFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/TransferFacade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TransferFacade.js","sourceRoot":"","sources":["../../../../../src/output-gateway/pid/service/facade/TransferFacade.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { RepositoryWithSubscriber } from "../../../shared/service/VPSubscriber";
|
|
2
|
+
import { IStopCacheDto } from "../../../../schema-definitions/ropid-gtfs/interfaces/IStopDto";
|
|
2
3
|
import { IoRedisConnector } from "@golemio/core/dist/helpers/data-access/redis/IoRedisConnector";
|
|
3
4
|
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
4
5
|
export declare class GtfsStopsRedisRepository implements RepositoryWithSubscriber {
|
|
@@ -10,4 +11,5 @@ export declare class GtfsStopsRedisRepository implements RepositoryWithSubscribe
|
|
|
10
11
|
setCurrentSetName(name: string): void;
|
|
11
12
|
getAswNodeIdFromCisId(cisId: string): Promise<string | null>;
|
|
12
13
|
getGtfsStopIdsByAswNode(aswNodeId: string): Promise<string[]>;
|
|
14
|
+
getGtfsStopsDetailsByAswId(aswIds: string[]): Promise<IStopCacheDto[]>;
|
|
13
15
|
}
|
|
@@ -54,7 +54,7 @@ let GtfsStopsRedisRepository = exports.GtfsStopsRedisRepository = class GtfsStop
|
|
|
54
54
|
return await connection.hget(`${this.setName}:cisToAswNode`, cisId);
|
|
55
55
|
}
|
|
56
56
|
catch (error) {
|
|
57
|
-
throw new golemio_errors_1.GeneralError("Cannot
|
|
57
|
+
throw new golemio_errors_1.GeneralError("Cannot aswNodeId from cache", this.constructor.name, error);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
async getGtfsStopIdsByAswNode(aswNodeId) {
|
|
@@ -70,7 +70,29 @@ let GtfsStopsRedisRepository = exports.GtfsStopsRedisRepository = class GtfsStop
|
|
|
70
70
|
return listOfGtfsStops.split(",");
|
|
71
71
|
}
|
|
72
72
|
catch (error) {
|
|
73
|
-
throw new golemio_errors_1.GeneralError("Cannot
|
|
73
|
+
throw new golemio_errors_1.GeneralError("Cannot gtfsStopIds from cache", this.constructor.name, error);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async getGtfsStopsDetailsByAswId(aswIds) {
|
|
77
|
+
const connection = await this.checkSetNameAndConnection();
|
|
78
|
+
if (!connection) {
|
|
79
|
+
throw new golemio_errors_1.GeneralError("Unable to get connection", this.constructor.name);
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
const stopsDetail = await connection.hmget(`${this.setName}:staticData`, ...aswIds);
|
|
83
|
+
if (!stopsDetail) {
|
|
84
|
+
throw new golemio_errors_1.GeneralError(`Unable to get stops details by aswId: ${aswIds}`, this.constructor.name);
|
|
85
|
+
}
|
|
86
|
+
const res = [];
|
|
87
|
+
for (const stopDetail of stopsDetail) {
|
|
88
|
+
if (stopDetail === null)
|
|
89
|
+
continue;
|
|
90
|
+
res.push(JSON.parse(stopDetail));
|
|
91
|
+
}
|
|
92
|
+
return res;
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
throw new golemio_errors_1.GeneralError("Cannot get stops details from cache", this.constructor.name, error);
|
|
74
96
|
}
|
|
75
97
|
}
|
|
76
98
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GtfsStopsRedisRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"GtfsStopsRedisRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/ropid-gtfs/data-access/redis/GtfsStopsRedisRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,6 @@ export interface IStopDto {
|
|
|
19
19
|
export interface IStopComputedDto {
|
|
20
20
|
computed_cis_stop_id: string | null;
|
|
21
21
|
}
|
|
22
|
-
export type
|
|
22
|
+
export type IStopCacheDto = Pick<IStopDto, "stop_id" | "asw_node_id" | "platform_code" | "stop_name" | "wheelchair_boarding" | "zone_id"> & {
|
|
23
23
|
computed_cis_stop_id: string;
|
|
24
24
|
};
|