@golemio/pid 3.12.0-dev.1778750872 → 3.12.0-dev.1779397864

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/db/example/00_clear_test_data.sql +3 -1
  2. package/db/example/22_jis_events.sql +551 -0
  3. package/db/migrations/postgresql/20250415115907-jis-events.js +53 -0
  4. package/db/migrations/postgresql/sqls/20250415115907-jis-events-down.sql +3 -0
  5. package/db/migrations/postgresql/sqls/20250415115907-jis-events-up.sql +30 -0
  6. package/dist/{output-gateway/shared/constants/jis/InfotextSeverityLevelEnum.d.ts → helpers/jis/JISEventSeverityLevelEnum.d.ts} +1 -1
  7. package/dist/helpers/jis/JISEventSeverityLevelEnum.js +10 -0
  8. package/dist/helpers/jis/JISEventSeverityLevelEnum.js.map +1 -0
  9. package/dist/helpers/jis/JISInfotextSeverityLevelEnum.d.ts +5 -0
  10. package/dist/helpers/jis/JISInfotextSeverityLevelEnum.js +10 -0
  11. package/dist/helpers/jis/JISInfotextSeverityLevelEnum.js.map +1 -0
  12. package/dist/input-gateway/jis/JisInfotextsRouter.d.ts +4 -2
  13. package/dist/input-gateway/jis/JisInfotextsRouter.js +19 -5
  14. package/dist/input-gateway/jis/JisInfotextsRouter.js.map +1 -1
  15. package/dist/input-gateway/jis/controllers/JisEventsController.d.ts +9 -0
  16. package/dist/input-gateway/jis/controllers/JisEventsController.js +28 -0
  17. package/dist/input-gateway/jis/controllers/JisEventsController.js.map +1 -0
  18. package/dist/input-gateway/jis/{JisInfotextsController.js → controllers/JisInfotextsController.js} +1 -1
  19. package/dist/input-gateway/jis/controllers/JisInfotextsController.js.map +1 -0
  20. package/dist/integration-engine/data-retention/ioc/RetentionContainerToken.js +1 -1
  21. package/dist/integration-engine/data-retention/ioc/RetentionContainerToken.js.map +1 -1
  22. package/dist/integration-engine/ioc/ModuleContainerToken.js +9 -9
  23. package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
  24. package/dist/integration-engine/jis/datasources/JISEventsDataSourceFactory.d.ts +10 -0
  25. package/dist/integration-engine/jis/datasources/JISEventsDataSourceFactory.js +52 -0
  26. package/dist/integration-engine/jis/datasources/JISEventsDataSourceFactory.js.map +1 -0
  27. package/dist/integration-engine/jis/ioc/Di.js +16 -2
  28. package/dist/integration-engine/jis/ioc/Di.js.map +1 -1
  29. package/dist/integration-engine/jis/ioc/JISContainerToken.d.ts +8 -1
  30. package/dist/integration-engine/jis/ioc/JISContainerToken.js +15 -8
  31. package/dist/integration-engine/jis/ioc/JISContainerToken.js.map +1 -1
  32. package/dist/integration-engine/jis/repositories/JISEventsRepository.d.ts +29 -0
  33. package/dist/integration-engine/jis/repositories/JISEventsRepository.js +113 -0
  34. package/dist/integration-engine/jis/repositories/JISEventsRepository.js.map +1 -0
  35. package/dist/integration-engine/jis/repositories/JISEventsRopidGTFSRoutesRepository.d.ts +30 -0
  36. package/dist/integration-engine/jis/repositories/JISEventsRopidGTFSRoutesRepository.js +88 -0
  37. package/dist/integration-engine/jis/repositories/JISEventsRopidGTFSRoutesRepository.js.map +1 -0
  38. package/dist/integration-engine/jis/services/JISEventsDataService.d.ts +20 -0
  39. package/dist/integration-engine/jis/services/JISEventsDataService.js +74 -0
  40. package/dist/integration-engine/jis/services/JISEventsDataService.js.map +1 -0
  41. package/dist/integration-engine/jis/transformations/JISEventsTransformation.d.ts +13 -0
  42. package/dist/integration-engine/jis/transformations/JISEventsTransformation.js +48 -0
  43. package/dist/integration-engine/jis/transformations/JISEventsTransformation.js.map +1 -0
  44. package/dist/integration-engine/jis/workers/JISWorker.js +3 -1
  45. package/dist/integration-engine/jis/workers/JISWorker.js.map +1 -1
  46. package/dist/integration-engine/jis/workers/tasks/FetchJISEventsTask.d.ts +9 -0
  47. package/dist/integration-engine/jis/workers/tasks/FetchJISEventsTask.js +50 -0
  48. package/dist/integration-engine/jis/workers/tasks/FetchJISEventsTask.js.map +1 -0
  49. package/dist/integration-engine/jis/workers/tasks/RefreshJISEventsTask.d.ts +15 -0
  50. package/dist/integration-engine/jis/workers/tasks/RefreshJISEventsTask.js +61 -0
  51. package/dist/integration-engine/jis/workers/tasks/RefreshJISEventsTask.js.map +1 -0
  52. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +29 -29
  53. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
  54. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +43 -43
  55. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
  56. package/dist/output-gateway/pid/ioc/OgPidToken.js +22 -22
  57. package/dist/output-gateway/pid/ioc/OgPidToken.js.map +1 -1
  58. package/dist/output-gateway/pid/service/helpers/PriorityMapper.d.ts +2 -2
  59. package/dist/output-gateway/pid/service/helpers/PriorityMapper.js +4 -4
  60. package/dist/output-gateway/pid/service/helpers/PriorityMapper.js.map +1 -1
  61. package/dist/output-gateway/public/ioc/OgModuleToken.js +26 -26
  62. package/dist/output-gateway/public/ioc/OgModuleToken.js.map +1 -1
  63. package/dist/schema-definitions/jis/constants/jisEventCause.d.ts +1 -0
  64. package/dist/schema-definitions/jis/constants/jisEventCause.js +18 -0
  65. package/dist/schema-definitions/jis/constants/jisEventCause.js.map +1 -0
  66. package/dist/schema-definitions/jis/constants/jisEventEffect.d.ts +1 -0
  67. package/dist/schema-definitions/jis/constants/jisEventEffect.js +17 -0
  68. package/dist/schema-definitions/jis/constants/jisEventEffect.js.map +1 -0
  69. package/dist/schema-definitions/jis/datasources/JISEventsJsonSchema.d.ts +3 -0
  70. package/dist/schema-definitions/jis/datasources/JISEventsJsonSchema.js +88 -0
  71. package/dist/schema-definitions/jis/datasources/JISEventsJsonSchema.js.map +1 -0
  72. package/dist/schema-definitions/jis/datasources/JISInfotextsJsonSchema.js +2 -2
  73. package/dist/schema-definitions/jis/datasources/JISInfotextsJsonSchema.js.map +1 -1
  74. package/dist/schema-definitions/jis/datasources/interfaces/IJISEvent.d.ts +25 -0
  75. package/dist/schema-definitions/jis/datasources/interfaces/IJISEvent.js +3 -0
  76. package/dist/schema-definitions/jis/datasources/interfaces/IJISEvent.js.map +1 -0
  77. package/dist/schema-definitions/jis/datasources/interfaces/IJISEventRoute.d.ts +3 -0
  78. package/dist/schema-definitions/jis/datasources/interfaces/IJISEventRoute.js +3 -0
  79. package/dist/schema-definitions/jis/datasources/interfaces/IJISEventRoute.js.map +1 -0
  80. package/dist/schema-definitions/jis/datasources/interfaces/IJISInfotext.d.ts +2 -2
  81. package/dist/schema-definitions/jis/datasources/interfaces/index.d.ts +2 -0
  82. package/dist/schema-definitions/jis/datasources/interfaces/index.js +2 -0
  83. package/dist/schema-definitions/jis/datasources/interfaces/index.js.map +1 -1
  84. package/dist/schema-definitions/jis/models/JISEventsModel.d.ts +28 -0
  85. package/dist/schema-definitions/jis/models/JISEventsModel.js +137 -0
  86. package/dist/schema-definitions/jis/models/JISEventsModel.js.map +1 -0
  87. package/dist/schema-definitions/jis/models/JISEventsRopidGTFSRoutesModel.d.ts +12 -0
  88. package/dist/schema-definitions/jis/models/JISEventsRopidGTFSRoutesModel.js +41 -0
  89. package/dist/schema-definitions/jis/models/JISEventsRopidGTFSRoutesModel.js.map +1 -0
  90. package/dist/schema-definitions/jis/models/JISInfotextsModel.d.ts +2 -2
  91. package/dist/schema-definitions/jis/models/JISInfotextsModel.js +3 -3
  92. package/dist/schema-definitions/jis/models/JISInfotextsModel.js.map +1 -1
  93. package/dist/schema-definitions/jis/models/interfaces/IJISEvent.d.ts +19 -0
  94. package/dist/schema-definitions/jis/models/interfaces/IJISEvent.js +3 -0
  95. package/dist/schema-definitions/jis/models/interfaces/IJISEvent.js.map +1 -0
  96. package/dist/schema-definitions/jis/models/interfaces/IJISEventsRopidGTFSRoutes.d.ts +4 -0
  97. package/dist/schema-definitions/jis/models/interfaces/IJISEventsRopidGTFSRoutes.js +3 -0
  98. package/dist/schema-definitions/jis/models/interfaces/IJISEventsRopidGTFSRoutes.js.map +1 -0
  99. package/dist/schema-definitions/jis/models/interfaces/IJISInfotext.d.ts +2 -2
  100. package/dist/schema-definitions/jis/models/interfaces/index.d.ts +2 -0
  101. package/dist/schema-definitions/jis/models/interfaces/index.js +2 -0
  102. package/dist/schema-definitions/jis/models/interfaces/index.js.map +1 -1
  103. package/docs/assets/pid_jis_erd.png +0 -0
  104. package/docs/asyncapi.yaml +278 -55
  105. package/docs/implementation_documentation.md +45 -1
  106. package/docs/openapi-input.yaml +328 -58
  107. package/package.json +1 -1
  108. package/dist/input-gateway/jis/JisInfotextsController.js.map +0 -1
  109. package/dist/output-gateway/shared/constants/jis/InfotextSeverityLevelEnum.js +0 -10
  110. package/dist/output-gateway/shared/constants/jis/InfotextSeverityLevelEnum.js.map +0 -1
  111. /package/dist/input-gateway/jis/{JisInfotextsController.d.ts → controllers/JisInfotextsController.d.ts} +0 -0
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JISEventSeverityLevel = void 0;
4
+ var JISEventSeverityLevel;
5
+ (function (JISEventSeverityLevel) {
6
+ JISEventSeverityLevel["Info"] = "INFO";
7
+ JISEventSeverityLevel["Warning"] = "WARNING";
8
+ JISEventSeverityLevel["Severe"] = "SEVERE";
9
+ })(JISEventSeverityLevel || (exports.JISEventSeverityLevel = JISEventSeverityLevel = {}));
10
+ //# sourceMappingURL=JISEventSeverityLevelEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JISEventSeverityLevelEnum.js","sourceRoot":"","sources":["../../../src/helpers/jis/JISEventSeverityLevelEnum.ts"],"names":[],"mappings":";;;AAAA,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC7B,sCAAa,CAAA;IACb,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;AACrB,CAAC,EAJW,qBAAqB,qCAArB,qBAAqB,QAIhC"}
@@ -0,0 +1,5 @@
1
+ export declare enum JISInfotextSeverityLevel {
2
+ Info = "INFO",
3
+ Warning = "WARNING",
4
+ Severe = "SEVERE"
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JISInfotextSeverityLevel = void 0;
4
+ var JISInfotextSeverityLevel;
5
+ (function (JISInfotextSeverityLevel) {
6
+ JISInfotextSeverityLevel["Info"] = "INFO";
7
+ JISInfotextSeverityLevel["Warning"] = "WARNING";
8
+ JISInfotextSeverityLevel["Severe"] = "SEVERE";
9
+ })(JISInfotextSeverityLevel || (exports.JISInfotextSeverityLevel = JISInfotextSeverityLevel = {}));
10
+ //# sourceMappingURL=JISInfotextSeverityLevelEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JISInfotextSeverityLevelEnum.js","sourceRoot":"","sources":["../../../src/helpers/jis/JISInfotextSeverityLevelEnum.ts"],"names":[],"mappings":";;;AAAA,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAChC,yCAAa,CAAA;IACb,+CAAmB,CAAA;IACnB,6CAAiB,CAAA;AACrB,CAAC,EAJW,wBAAwB,wCAAxB,wBAAwB,QAInC"}
@@ -2,8 +2,10 @@
2
2
  import { Router } from "@golemio/core/dist/shared/express";
3
3
  export declare class JisInfotextsRouter {
4
4
  router: Router;
5
- private controller;
5
+ private eventsController;
6
+ private infotextsController;
6
7
  constructor();
7
8
  private initRoutes;
8
- private post;
9
+ private postEvents;
10
+ private postInfotexts;
9
11
  }
@@ -3,12 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JisInfotextsRouter = void 0;
4
4
  const CheckContentTypeMiddleware_1 = require("@golemio/core/dist/input-gateway/helpers/CheckContentTypeMiddleware");
5
5
  const express_1 = require("@golemio/core/dist/shared/express");
6
- const JisInfotextsController_1 = require("./JisInfotextsController");
6
+ const JisEventsController_1 = require("./controllers/JisEventsController");
7
+ const JisInfotextsController_1 = require("./controllers/JisInfotextsController");
7
8
  class JisInfotextsRouter {
8
9
  constructor() {
9
- this.post = async (req, res, next) => {
10
+ this.postEvents = async (req, res, next) => {
10
11
  try {
11
- await this.controller.processData(req.body);
12
+ await this.eventsController.processData(req.body);
13
+ res.sendStatus(204);
14
+ }
15
+ catch (err) {
16
+ next(err);
17
+ }
18
+ };
19
+ this.postInfotexts = async (req, res, next) => {
20
+ try {
21
+ await this.infotextsController.processData(req.body);
12
22
  res.sendStatus(204);
13
23
  }
14
24
  catch (err) {
@@ -16,11 +26,15 @@ class JisInfotextsRouter {
16
26
  }
17
27
  };
18
28
  this.router = (0, express_1.Router)();
19
- this.controller = new JisInfotextsController_1.JisInfotextsController();
29
+ this.eventsController = new JisEventsController_1.JISEventsController();
30
+ this.infotextsController = new JisInfotextsController_1.JisInfotextsController();
20
31
  this.initRoutes();
21
32
  }
22
33
  initRoutes() {
23
- this.router.post("/infotexts", (0, CheckContentTypeMiddleware_1.checkContentTypeMiddleware)(["application/json"]), this.post);
34
+ // TODO: Either rename this router to just "JISRouter", or move to a separate "JISEventsRouter"
35
+ // TODO: This can be done later along with possible addition of RouterLoader to (VP) Input Gateway
36
+ this.router.post("/events", (0, CheckContentTypeMiddleware_1.checkContentTypeMiddleware)(["application/json"]), this.postEvents);
37
+ this.router.post("/infotexts", (0, CheckContentTypeMiddleware_1.checkContentTypeMiddleware)(["application/json"]), this.postInfotexts);
24
38
  }
25
39
  }
26
40
  exports.JisInfotextsRouter = JisInfotextsRouter;
@@ -1 +1 @@
1
- {"version":3,"file":"JisInfotextsRouter.js","sourceRoot":"","sources":["../../../src/input-gateway/jis/JisInfotextsRouter.ts"],"names":[],"mappings":";;;AAAA,oHAAiH;AACjH,+DAA4F;AAC5F,qEAAkE;AAElE,MAAa,kBAAkB;IAI3B;QAUQ,SAAI,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAiB,EAAE;YACpF,IAAI;gBACA,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5C,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACvB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAC;QAhBE,IAAI,CAAC,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,+CAAsB,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAEO,UAAU;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAA,uDAA0B,EAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChG,CAAC;CAUJ;AAtBD,gDAsBC"}
1
+ {"version":3,"file":"JisInfotextsRouter.js","sourceRoot":"","sources":["../../../src/input-gateway/jis/JisInfotextsRouter.ts"],"names":[],"mappings":";;;AAAA,oHAAiH;AACjH,+DAA4F;AAC5F,2EAAwE;AACxE,iFAA8E;AAE9E,MAAa,kBAAkB;IAK3B;QAcQ,eAAU,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAiB,EAAE;YAC1F,IAAI;gBACA,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClD,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACvB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAC;QAEM,kBAAa,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAiB,EAAE;YAC7F,IAAI;gBACA,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrD,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACvB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAC;QA7BE,IAAI,CAAC,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,IAAI,yCAAmB,EAAE,CAAC;QAClD,IAAI,CAAC,mBAAmB,GAAG,IAAI,+CAAsB,EAAE,CAAC;QACxD,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAEO,UAAU;QACd,+FAA+F;QAC/F,kGAAkG;QAClG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAA,uDAA0B,EAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAA,uDAA0B,EAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzG,CAAC;CAmBJ;AApCD,gDAoCC"}
@@ -0,0 +1,9 @@
1
+ import { BaseController } from "@golemio/core/dist/input-gateway/controllers";
2
+ import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
3
+ export declare class JISEventsController extends BaseController {
4
+ name: string;
5
+ protected validator: JSONSchemaValidator;
6
+ protected queuePrefix: string;
7
+ constructor();
8
+ processData: (inputData: any) => Promise<void>;
9
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JISEventsController = void 0;
4
+ const JISEventsJsonSchema_1 = require("../../../schema-definitions/jis/datasources/JISEventsJsonSchema");
5
+ const controllers_1 = require("@golemio/core/dist/input-gateway/controllers");
6
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
7
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
8
+ class JISEventsController extends controllers_1.BaseController {
9
+ constructor() {
10
+ super("jis", new golemio_validator_1.JSONSchemaValidator("JISEventsDataValidation", JISEventsJsonSchema_1.jisEventsJsonSchema));
11
+ this.processData = async (inputData) => {
12
+ try {
13
+ await this.validator.Validate(inputData);
14
+ await this.sendMessageToExchange("input." + this.queuePrefix + ".refreshJISEvents", JSON.stringify(inputData));
15
+ }
16
+ catch (err) {
17
+ if (err instanceof golemio_errors_1.AbstractGolemioError) {
18
+ throw err;
19
+ }
20
+ else {
21
+ throw new golemio_errors_1.GeneralError("Error while validating input data.", this.constructor.name, err, 422);
22
+ }
23
+ }
24
+ };
25
+ }
26
+ }
27
+ exports.JISEventsController = JISEventsController;
28
+ //# sourceMappingURL=JisEventsController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JisEventsController.js","sourceRoot":"","sources":["../../../../src/input-gateway/jis/controllers/JisEventsController.ts"],"names":[],"mappings":";;;AAAA,yGAA+E;AAC/E,8EAA8E;AAC9E,6EAA8F;AAC9F,mFAAkF;AAElF,MAAa,mBAAoB,SAAQ,4BAAc;IAKnD;QACI,KAAK,CAAC,KAAK,EAAE,IAAI,uCAAmB,CAAC,yBAAyB,EAAE,yCAAmB,CAAC,CAAC,CAAC;QAGnF,gBAAW,GAAG,KAAK,EAAE,SAAc,EAAiB,EAAE;YACzD,IAAI;gBACA,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzC,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;aAClH;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;qBAAM;oBACH,MAAM,IAAI,6BAAY,CAAC,oCAAoC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;iBACjG;aACJ;QACL,CAAC,CAAC;IAbF,CAAC;CAcJ;AArBD,kDAqBC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JisInfotextsController = void 0;
4
- const JISInfotextsJsonSchema_1 = require("../../schema-definitions/jis/datasources/JISInfotextsJsonSchema");
4
+ const JISInfotextsJsonSchema_1 = require("../../../schema-definitions/jis/datasources/JISInfotextsJsonSchema");
5
5
  const controllers_1 = require("@golemio/core/dist/input-gateway/controllers");
6
6
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
7
7
  const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JisInfotextsController.js","sourceRoot":"","sources":["../../../../src/input-gateway/jis/controllers/JisInfotextsController.ts"],"names":[],"mappings":";;;AAAA,+GAAqF;AACrF,8EAA8E;AAC9E,6EAA8F;AAC9F,mFAAkF;AAElF,MAAa,sBAAuB,SAAQ,4BAAc;IAKtD;QACI,KAAK,CAAC,KAAK,EAAE,IAAI,uCAAmB,CAAC,4BAA4B,EAAE,+CAAsB,CAAC,CAAC,CAAC;QAGzF,gBAAW,GAAG,KAAK,EAAE,SAAc,EAAiB,EAAE;YACzD,IAAI;gBACA,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzC,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;aACrH;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;qBAAM;oBACH,MAAM,IAAI,6BAAY,CAAC,oCAAoC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;iBACjG;aACJ;QACL,CAAC,CAAC;IAbF,CAAC;CAcJ;AArBD,wDAqBC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RetentionContainerToken = void 0;
4
4
  const RetentionContainerToken = {
5
- TableStorageRetentionTask: Symbol(),
5
+ TableStorageRetentionTask: Symbol("TableStorageRetentionTask"),
6
6
  };
7
7
  exports.RetentionContainerToken = RetentionContainerToken;
8
8
  //# sourceMappingURL=RetentionContainerToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RetentionContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/data-retention/ioc/RetentionContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,uBAAuB,GAAG;IAC5B,yBAAyB,EAAE,MAAM,EAAE;CACtC,CAAC;AAEO,0DAAuB"}
1
+ {"version":3,"file":"RetentionContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/data-retention/ioc/RetentionContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,uBAAuB,GAAG;IAC5B,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;CACjE,CAAC;AAEO,0DAAuB"}
@@ -2,15 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ModuleContainerToken = void 0;
4
4
  const ModuleContainerToken = {
5
- GeoMeasurementHelper: Symbol(),
6
- DeparturePresetsRepository: Symbol(),
7
- RopidDeparturesPresetsTransformation: Symbol(),
8
- GrafanaLokiDataSourceProvider: Symbol(),
9
- PresetLogDataSourceFactory: Symbol(),
10
- PresetLogTransformation: Symbol(),
11
- PresetLogRepository: Symbol(),
12
- PresetLogFilter: Symbol(),
13
- RopidMonitoringService: Symbol(),
5
+ GeoMeasurementHelper: Symbol("GeoMeasurementHelper"),
6
+ DeparturePresetsRepository: Symbol("DeparturePresetsRepository"),
7
+ RopidDeparturesPresetsTransformation: Symbol("RopidDeparturesPresetsTransformation"),
8
+ GrafanaLokiDataSourceProvider: Symbol("GrafanaLokiDataSourceProvider"),
9
+ PresetLogDataSourceFactory: Symbol("PresetLogDataSourceFactory"),
10
+ PresetLogTransformation: Symbol("PresetLogTransformation"),
11
+ PresetLogRepository: Symbol("PresetLogRepository"),
12
+ PresetLogFilter: Symbol("PresetLogFilter"),
13
+ RopidMonitoringService: Symbol("RopidMonitoringService"),
14
14
  };
15
15
  exports.ModuleContainerToken = ModuleContainerToken;
16
16
  //# sourceMappingURL=ModuleContainerToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,oBAAoB,EAAE,MAAM,EAAE;IAC9B,0BAA0B,EAAE,MAAM,EAAE;IACpC,oCAAoC,EAAE,MAAM,EAAE;IAC9C,6BAA6B,EAAE,MAAM,EAAE;IACvC,0BAA0B,EAAE,MAAM,EAAE;IACpC,uBAAuB,EAAE,MAAM,EAAE;IACjC,mBAAmB,EAAE,MAAM,EAAE;IAC7B,eAAe,EAAE,MAAM,EAAE;IACzB,sBAAsB,EAAE,MAAM,EAAE;CACnC,CAAC;AAEO,oDAAoB"}
1
+ {"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,oCAAoC,EAAE,MAAM,CAAC,sCAAsC,CAAC;IACpF,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;IAC1C,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;CAC3D,CAAC;AAEO,oDAAoB"}
@@ -0,0 +1,10 @@
1
+ import { IJISEvent } from "../../../schema-definitions/jis/datasources/interfaces";
2
+ import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
3
+ import { IDataSource } from "@golemio/core/dist/integration-engine";
4
+ export declare class JISEventsDataSourceFactory {
5
+ private config;
6
+ constructor(config: ISimpleConfig);
7
+ private static DATASOURCE_NAME;
8
+ getDataSource(etag?: string): IDataSource<IJISEvent[]>;
9
+ private getProtocolStrategy;
10
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var JISEventsDataSourceFactory_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.JISEventsDataSourceFactory = void 0;
17
+ const JISEventsJsonSchema_1 = require("../../../schema-definitions/jis/datasources/JISEventsJsonSchema");
18
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
19
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
20
+ const HTTPFetchProtocolStrategy_1 = require("@golemio/core/dist/integration-engine/datasources/protocol-strategy/HTTPFetchProtocolStrategy");
21
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
22
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
23
+ let JISEventsDataSourceFactory = exports.JISEventsDataSourceFactory = JISEventsDataSourceFactory_1 = class JISEventsDataSourceFactory {
24
+ constructor(config) {
25
+ this.config = config;
26
+ }
27
+ getDataSource(etag) {
28
+ return new integration_engine_1.DataSource(JISEventsDataSourceFactory_1.DATASOURCE_NAME, this.getProtocolStrategy(etag), new integration_engine_1.JSONDataTypeStrategy({ resultsPath: "" }), new golemio_validator_1.JSONSchemaValidator(JISEventsDataSourceFactory_1.DATASOURCE_NAME + "Validator", JISEventsJsonSchema_1.jisEventsJsonSchema));
29
+ }
30
+ getProtocolStrategy(etag) {
31
+ const baseUrl = this.config.getValue("module.pid.jis.baseUrl");
32
+ let headers = this.config.getValue("module.pid.jis.events.headers");
33
+ const urlPath = this.config.getValue("module.pid.jis.events.path");
34
+ const url = new URL(urlPath, baseUrl).toString();
35
+ if (typeof etag === "string") {
36
+ headers = { ...headers, "If-None-Match": etag, "Cache-Control": "no-store" };
37
+ }
38
+ return new HTTPFetchProtocolStrategy_1.HTTPFetchProtocolStrategy({
39
+ method: "GET",
40
+ url,
41
+ headers,
42
+ timeoutInSeconds: 20,
43
+ });
44
+ }
45
+ };
46
+ JISEventsDataSourceFactory.DATASOURCE_NAME = "JISEventsDataSource";
47
+ exports.JISEventsDataSourceFactory = JISEventsDataSourceFactory = JISEventsDataSourceFactory_1 = __decorate([
48
+ (0, tsyringe_1.injectable)(),
49
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
50
+ __metadata("design:paramtypes", [Object])
51
+ ], JISEventsDataSourceFactory);
52
+ //# sourceMappingURL=JISEventsDataSourceFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JISEventsDataSourceFactory.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/datasources/JISEventsDataSourceFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,yGAA+E;AAE/E,wEAAqE;AACrE,8EAAwH;AACxH,6IAA0I;AAC1I,mFAAkF;AAClF,iEAAwE;AAGjE,IAAM,0BAA0B,uEAAhC,MAAM,0BAA0B;IACnC,YAAoD,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAItE,aAAa,CAAC,IAAa;QAC9B,OAAO,IAAI,+BAAU,CACjB,4BAA0B,CAAC,eAAe,EAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAC9B,IAAI,yCAAoB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,EAC7C,IAAI,uCAAmB,CAAC,4BAA0B,CAAC,eAAe,GAAG,WAAW,EAAE,yCAAmB,CAAC,CACzG,CAAC;IACN,CAAC;IAEO,mBAAmB,CAAC,IAAa;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,wBAAwB,CAAC,CAAC;QACvE,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAc,+BAA+B,CAAgB,CAAC;QAChG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,4BAA4B,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEjD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC1B,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;SAChF;QAED,OAAO,IAAI,qDAAyB,CAAC;YACjC,MAAM,EAAE,KAAK;YACb,GAAG;YACH,OAAO;YACP,gBAAgB,EAAE,EAAE;SACvB,CAAC,CAAC;IACP,CAAC;;AA3Bc,0CAAe,GAAG,qBAAqB,AAAxB,CAAyB;qCAH9C,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;;GADlC,0BAA0B,CA+BtC"}
@@ -2,34 +2,48 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JISContainer = void 0;
4
4
  const Di_1 = require("../../ioc/Di");
5
+ const JISEventsDataSourceFactory_1 = require("../datasources/JISEventsDataSourceFactory");
5
6
  const JISInfotextsDataSourceFactory_1 = require("../datasources/JISInfotextsDataSourceFactory");
7
+ const JISEventsRepository_1 = require("../repositories/JISEventsRepository");
8
+ const JISEventsRopidGTFSRoutesRepository_1 = require("../repositories/JISEventsRopidGTFSRoutesRepository");
6
9
  const JISInfotextsRepository_1 = require("../repositories/JISInfotextsRepository");
7
10
  const JISInfotextsRopidGTFSStopsRepository_1 = require("../repositories/JISInfotextsRopidGTFSStopsRepository");
8
11
  const JISMetadataRepository_1 = require("../repositories/JISMetadataRepository");
12
+ const JISEventsDataService_1 = require("../services/JISEventsDataService");
9
13
  const JISInfotextsDataService_1 = require("../services/JISInfotextsDataService");
14
+ const JISEventsTransformation_1 = require("../transformations/JISEventsTransformation");
10
15
  const JISInfotextsTransformation_1 = require("../transformations/JISInfotextsTransformation");
16
+ const FetchJISEventsTask_1 = require("../workers/tasks/FetchJISEventsTask");
17
+ const FetchJISInfotextsTask_1 = require("../workers/tasks/FetchJISInfotextsTask");
18
+ const RefreshJISEventsTask_1 = require("../workers/tasks/RefreshJISEventsTask");
11
19
  const RefreshJISInfotextsTask_1 = require("../workers/tasks/RefreshJISInfotextsTask");
12
20
  const JISContainerToken_1 = require("./JISContainerToken");
13
- const FetchJISInfotextsTask_1 = require("../workers/tasks/FetchJISInfotextsTask");
14
21
  //#region Initialization
15
22
  const JISContainer = Di_1.PidContainer.createChildContainer();
16
23
  exports.JISContainer = JISContainer;
17
24
  //#endregion
18
25
  //#region Data Sources
26
+ JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISEventsDataSourceFactory, JISEventsDataSourceFactory_1.JISEventsDataSourceFactory);
19
27
  JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISInfotextsDataSourceFactory, JISInfotextsDataSourceFactory_1.JISInfotextsDataSourceFactory);
20
28
  //#endregion
21
29
  //#region Repositories
30
+ JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISEventsRepository, JISEventsRepository_1.JISEventsRepository);
31
+ JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISEventsRopidGTFSRoutesRepository, JISEventsRopidGTFSRoutesRepository_1.JISEventsRopidGTFSRoutesRepository);
22
32
  JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISInfotextsRepository, JISInfotextsRepository_1.JISInfotextsRepository);
23
33
  JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISInfotextsRopidGTFSStopsRepository, JISInfotextsRopidGTFSStopsRepository_1.JISInfotextsRopidGTFSStopsRepository);
24
34
  JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISMetadataRepository, JISMetadataRepository_1.JISMetadataRepository);
25
35
  //#endregion
26
36
  //#region Services
37
+ JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISEventsDataService, JISEventsDataService_1.JISEventsDataService);
27
38
  JISContainer.register(JISContainerToken_1.JISContainerToken.JISInfotextsDataService, JISInfotextsDataService_1.JISInfotextsDataService);
28
39
  //#endregion
29
40
  //#region Tasks
30
- JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.RefreshJISInfotextsTask, RefreshJISInfotextsTask_1.RefreshJISInfotextsTask);
41
+ JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.FetchJISEventsTask, FetchJISEventsTask_1.FetchJISEventsTask);
31
42
  JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.FetchJISInfotextsTask, FetchJISInfotextsTask_1.FetchJISInfotextsTask);
43
+ JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.RefreshJISEventsTask, RefreshJISEventsTask_1.RefreshJISEventsTask);
44
+ JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.RefreshJISInfotextsTask, RefreshJISInfotextsTask_1.RefreshJISInfotextsTask);
32
45
  //#endregion
33
46
  //#region Transformations
47
+ JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISEventsTransformation, JISEventsTransformation_1.JISEventsTransformation);
34
48
  JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISInfotextsTransformation, JISInfotextsTransformation_1.JISInfotextsTransformation);
35
49
  //# sourceMappingURL=Di.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAE1C,gGAA6F;AAC7F,mFAAgF;AAChF,+GAA4G;AAC5G,iFAA8E;AAC9E,iFAA8E;AAC9E,8FAA2F;AAC3F,sFAAmF;AACnF,2DAAwD;AACxD,kFAA+E;AAE/E,wBAAwB;AACxB,MAAM,YAAY,GAAwB,iBAAY,CAAC,oBAAoB,EAAE,CAAC;AA0BrE,oCAAY;AAzBrB,YAAY;AAEZ,sBAAsB;AACtB,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,6BAA6B,EAAE,6DAA6B,CAAC,CAAC;AAC/G,YAAY;AAEZ,sBAAsB;AACtB,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;AACjG,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,oCAAoC,EAAE,2EAAoC,CAAC,CAAC;AAC7H,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;AAC/F,YAAY;AAEZ,kBAAkB;AAClB,YAAY,CAAC,QAAQ,CAAC,qCAAiB,CAAC,uBAAuB,EAAE,iDAAuB,CAAC,CAAC;AAC1F,YAAY;AAEZ,eAAe;AACf,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,uBAAuB,EAAE,iDAAuB,CAAC,CAAC;AACnG,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;AAC/F,YAAY;AAEZ,yBAAyB;AACzB,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC"}
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAE1C,0FAAuF;AACvF,gGAA6F;AAC7F,6EAA0E;AAC1E,2GAAwG;AACxG,mFAAgF;AAChF,+GAA4G;AAC5G,iFAA8E;AAC9E,2EAAwE;AACxE,iFAA8E;AAC9E,wFAAqF;AACrF,8FAA2F;AAC3F,4EAAyE;AACzE,kFAA+E;AAC/E,gFAA6E;AAC7E,sFAAmF;AACnF,2DAAwD;AAExD,wBAAwB;AACxB,MAAM,YAAY,GAAwB,iBAAY,CAAC,oBAAoB,EAAE,CAAC;AAiCrE,oCAAY;AAhCrB,YAAY;AAEZ,sBAAsB;AACtB,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC;AACzG,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,6BAA6B,EAAE,6DAA6B,CAAC,CAAC;AAC/G,YAAY;AAEZ,sBAAsB;AACtB,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,mBAAmB,EAAE,yCAAmB,CAAC,CAAC;AAC3F,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,kCAAkC,EAAE,uEAAkC,CAAC,CAAC;AACzH,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;AACjG,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,oCAAoC,EAAE,2EAAoC,CAAC,CAAC;AAC7H,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;AAC/F,YAAY;AAEZ,kBAAkB;AAClB,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,oBAAoB,EAAE,2CAAoB,CAAC,CAAC;AAC7F,YAAY,CAAC,QAAQ,CAAC,qCAAiB,CAAC,uBAAuB,EAAE,iDAAuB,CAAC,CAAC;AAC1F,YAAY;AAEZ,eAAe;AACf,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;AACzF,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;AAC/F,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,oBAAoB,EAAE,2CAAoB,CAAC,CAAC;AAC7F,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,uBAAuB,EAAE,iDAAuB,CAAC,CAAC;AACnG,YAAY;AAEZ,yBAAyB;AACzB,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,uBAAuB,EAAE,iDAAuB,CAAC,CAAC;AACnG,YAAY,CAAC,iBAAiB,CAAC,qCAAiB,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC"}
@@ -1,11 +1,18 @@
1
1
  declare const JISContainerToken: {
2
+ JISEventsDataSourceFactory: symbol;
2
3
  JISInfotextsDataSourceFactory: symbol;
4
+ JISEventsRepository: symbol;
5
+ JISEventsRopidGTFSRoutesRepository: symbol;
3
6
  JISInfotextsRepository: symbol;
4
7
  JISInfotextsRopidGTFSStopsRepository: symbol;
5
8
  JISMetadataRepository: symbol;
9
+ JISEventsDataService: symbol;
6
10
  JISInfotextsDataService: symbol;
11
+ JISEventsTransformation: symbol;
7
12
  JISInfotextsTransformation: symbol;
8
- RefreshJISInfotextsTask: symbol;
13
+ FetchJISEventsTask: symbol;
9
14
  FetchJISInfotextsTask: symbol;
15
+ RefreshJISEventsTask: symbol;
16
+ RefreshJISInfotextsTask: symbol;
10
17
  };
11
18
  export { JISContainerToken };
@@ -3,18 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JISContainerToken = void 0;
4
4
  const JISContainerToken = {
5
5
  /* Data Sources */
6
- JISInfotextsDataSourceFactory: Symbol(),
6
+ JISEventsDataSourceFactory: Symbol("JISEventsDataSourceFactory"),
7
+ JISInfotextsDataSourceFactory: Symbol("JISInfotextsDataSourceFactory"),
7
8
  /* Repositories */
8
- JISInfotextsRepository: Symbol(),
9
- JISInfotextsRopidGTFSStopsRepository: Symbol(),
10
- JISMetadataRepository: Symbol(),
9
+ JISEventsRepository: Symbol("JISEventsRepository"),
10
+ JISEventsRopidGTFSRoutesRepository: Symbol("JISEventsRopidGTFSRoutesRepository"),
11
+ JISInfotextsRepository: Symbol("JISInfotextsRepository"),
12
+ JISInfotextsRopidGTFSStopsRepository: Symbol("JISInfotextsRopidGTFSStopsRepository"),
13
+ JISMetadataRepository: Symbol("JISMetadataRepository"),
11
14
  /* Services */
12
- JISInfotextsDataService: Symbol(),
15
+ JISEventsDataService: Symbol("JISEventsDataService"),
16
+ JISInfotextsDataService: Symbol("JISInfotextsDataService"),
13
17
  /* Transformations */
14
- JISInfotextsTransformation: Symbol(),
18
+ JISEventsTransformation: Symbol("JISEventsTransformation"),
19
+ JISInfotextsTransformation: Symbol("JISInfotextsTransformation"),
15
20
  /* Tasks */
16
- RefreshJISInfotextsTask: Symbol(),
17
- FetchJISInfotextsTask: Symbol(),
21
+ FetchJISEventsTask: Symbol("FetchJISEventsTask"),
22
+ FetchJISInfotextsTask: Symbol("FetchJISInfotextsTask"),
23
+ RefreshJISEventsTask: Symbol("RefreshJISEventsTask"),
24
+ RefreshJISInfotextsTask: Symbol("RefreshJISInfotextsTask"),
18
25
  };
19
26
  exports.JISContainerToken = JISContainerToken;
20
27
  //# sourceMappingURL=JISContainerToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JISContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/ioc/JISContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,iBAAiB,GAAG;IACtB,kBAAkB;IAClB,6BAA6B,EAAE,MAAM,EAAE;IACvC,kBAAkB;IAClB,sBAAsB,EAAE,MAAM,EAAE;IAChC,oCAAoC,EAAE,MAAM,EAAE;IAC9C,qBAAqB,EAAE,MAAM,EAAE;IAC/B,cAAc;IACd,uBAAuB,EAAE,MAAM,EAAE;IACjC,qBAAqB;IACrB,0BAA0B,EAAE,MAAM,EAAE;IACpC,WAAW;IACX,uBAAuB,EAAE,MAAM,EAAE;IACjC,qBAAqB,EAAE,MAAM,EAAE;CAClC,CAAC;AAEO,8CAAiB"}
1
+ {"version":3,"file":"JISContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/ioc/JISContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,iBAAiB,GAAG;IACtB,kBAAkB;IAClB,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,kBAAkB;IAClB,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,kCAAkC,EAAE,MAAM,CAAC,oCAAoC,CAAC;IAChF,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,oCAAoC,EAAE,MAAM,CAAC,sCAAsC,CAAC;IACpF,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,CAAC;IACtD,cAAc;IACd,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,qBAAqB;IACrB,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,0BAA0B,EAAE,MAAM,CAAC,4BAA4B,CAAC;IAChE,WAAW;IACX,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,CAAC;IACtD,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACpD,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;CAC7D,CAAC;AAEO,8CAAiB"}
@@ -0,0 +1,29 @@
1
+ import { JISEventsModel } from "../../../schema-definitions/jis/models/JISEventsModel";
2
+ import { IJISEvent } from "../../../schema-definitions/jis/models/interfaces";
3
+ import { ILogger } from "@golemio/core/dist/helpers";
4
+ import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
5
+ import { AbstractValidatableRepository } from "@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository";
6
+ import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
7
+ import { Transaction } from "@golemio/core/dist/shared/sequelize";
8
+ type RepositoryOptions = {
9
+ transaction?: Transaction;
10
+ };
11
+ export declare class JISEventsRepository extends AbstractValidatableRepository {
12
+ private logger;
13
+ validator: JSONSchemaValidator;
14
+ schema: string;
15
+ tableName: string;
16
+ private sequelizeModel;
17
+ constructor(connector: IDatabaseConnector, logger: ILogger);
18
+ deleteAndCountAllLastUpdatedBefore(dateTime: Date, options?: RepositoryOptions): Promise<number>;
19
+ /**
20
+ * Refresh all data from VYMI and delete old data
21
+ *
22
+ * @param data The data to be upserted
23
+ * @param options Options for the operation
24
+ */
25
+ refreshData(data: IJISEvent[], options?: RepositoryOptions): Promise<JISEventsModel[]>;
26
+ private getUpdateAttributes;
27
+ deleteAndCountAll(options?: RepositoryOptions): Promise<number>;
28
+ }
29
+ export {};
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.JISEventsRepository = void 0;
16
+ const const_1 = require("../../../schema-definitions/const");
17
+ const JISEventsModel_1 = require("../../../schema-definitions/jis/models/JISEventsModel");
18
+ const AbstractValidatableRepository_1 = require("@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository");
19
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
20
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
21
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
22
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
23
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
24
+ let JISEventsRepository = exports.JISEventsRepository = class JISEventsRepository extends AbstractValidatableRepository_1.AbstractValidatableRepository {
25
+ constructor(connector, logger) {
26
+ super(connector, logger);
27
+ this.logger = logger;
28
+ this.schema = const_1.PG_SCHEMA;
29
+ this.tableName = JISEventsModel_1.JISEventsModel.tableName;
30
+ this.validator = new golemio_validator_1.JSONSchemaValidator("JISEventsRepository", JISEventsModel_1.JISEventsModel.jsonSchema);
31
+ this.sequelizeModel = connector
32
+ .getConnection()
33
+ .define(this.tableName, JISEventsModel_1.JISEventsModel.attributeModel, { schema: this.schema });
34
+ }
35
+ async deleteAndCountAllLastUpdatedBefore(dateTime, options) {
36
+ try {
37
+ return await this.sequelizeModel.destroy({
38
+ where: {
39
+ updated_at: { [sequelize_1.Op.lt]: dateTime },
40
+ },
41
+ transaction: options?.transaction,
42
+ });
43
+ }
44
+ catch (err) {
45
+ throw new golemio_errors_1.GeneralError("Error in deleteAndCountAllLastUpdatedBefore", this.constructor.name, err);
46
+ }
47
+ }
48
+ /**
49
+ * Refresh all data from VYMI and delete old data
50
+ *
51
+ * @param data The data to be upserted
52
+ * @param options Options for the operation
53
+ */
54
+ async refreshData(data, options) {
55
+ try {
56
+ const currentEvents = await this.sequelizeModel.findAll({ transaction: options?.transaction });
57
+ const currentEventsMap = new Map();
58
+ for (const event of currentEvents) {
59
+ currentEventsMap.set(event.id, event);
60
+ }
61
+ const toBeUpserted = [];
62
+ for (const event of data) {
63
+ const info = currentEventsMap.get(event.id);
64
+ if (!info || info.updated_at <= event.updated_timestamp) {
65
+ toBeUpserted.push(event);
66
+ }
67
+ currentEventsMap.delete(event.id);
68
+ }
69
+ const toBeDeleted = [];
70
+ for (const { id } of currentEventsMap.values()) {
71
+ toBeDeleted.push(id);
72
+ }
73
+ const [upserted] = await Promise.all([
74
+ this.sequelizeModel.bulkCreate(toBeUpserted, {
75
+ updateOnDuplicate: this.getUpdateAttributes(),
76
+ transaction: options?.transaction,
77
+ }),
78
+ this.sequelizeModel.destroy({
79
+ where: {
80
+ id: { [sequelize_1.Op.in]: toBeDeleted },
81
+ },
82
+ transaction: options?.transaction,
83
+ }),
84
+ ]);
85
+ return upserted;
86
+ }
87
+ catch (err) {
88
+ if (err instanceof sequelize_1.ValidationError && err.errors?.length > 0) {
89
+ const mappedErrors = err.errors.map((e) => `${e.message} (${e.value})`).join(", ");
90
+ throw new golemio_errors_1.ValidationError(`Validation error in refreshData: ${mappedErrors}`, this.constructor.name, err, undefined, "pid");
91
+ }
92
+ throw new golemio_errors_1.GeneralError("Error in refreshData", this.constructor.name, err);
93
+ }
94
+ }
95
+ getUpdateAttributes() {
96
+ return Object.keys(JISEventsModel_1.JISEventsModel.attributeModel).filter((attribute) => !["created_at"].includes(attribute));
97
+ }
98
+ async deleteAndCountAll(options) {
99
+ try {
100
+ return await this.sequelizeModel.destroy({ where: {}, transaction: options?.transaction });
101
+ }
102
+ catch (err) {
103
+ throw new golemio_errors_1.GeneralError("Error in deleteAndCountAll", this.constructor.name, err);
104
+ }
105
+ }
106
+ };
107
+ exports.JISEventsRepository = JISEventsRepository = __decorate([
108
+ (0, tsyringe_1.injectable)(),
109
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
110
+ __param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
111
+ __metadata("design:paramtypes", [Object, Object])
112
+ ], JISEventsRepository);
113
+ //# sourceMappingURL=JISEventsRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JISEventsRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/repositories/JISEventsRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { JISEventsRopidGTFSRoutesModel } from "../../../schema-definitions/jis/models/JISEventsRopidGTFSRoutesModel";
2
+ import { IJISEventsRopidGTFSRoutes } from "../../../schema-definitions/jis/models/interfaces";
3
+ import { ILogger } from "@golemio/core/dist/helpers";
4
+ import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
5
+ import { AbstractValidatableRepository } from "@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository";
6
+ import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
7
+ import { ModelStatic, Transaction } from "@golemio/core/dist/shared/sequelize";
8
+ type RepositoryOptions = {
9
+ transaction?: Transaction;
10
+ };
11
+ export declare class JISEventsRopidGTFSRoutesRepository extends AbstractValidatableRepository {
12
+ private logger;
13
+ validator: JSONSchemaValidator;
14
+ schema: string;
15
+ tableName: string;
16
+ private sequelizeModel;
17
+ constructor(connector: IDatabaseConnector, logger: ILogger);
18
+ deleteAndCountAllLastUpdatedBefore(dateTime: Date, options?: RepositoryOptions): Promise<number>;
19
+ /**
20
+ * Insert or update all given data. In case of an update, all attributes except for `created_at` shall be overwritten.
21
+ *
22
+ * @param data The data to be upserted
23
+ * @param options Options for the operation
24
+ * @returns The upserted items
25
+ */
26
+ upsertAll(data: IJISEventsRopidGTFSRoutes[], options?: RepositoryOptions): ReturnType<ModelStatic<JISEventsRopidGTFSRoutesModel>["bulkCreate"]>;
27
+ private getUpdateAttributes;
28
+ deleteAndCountAll(options?: RepositoryOptions): Promise<number>;
29
+ }
30
+ export {};