@golemio/pid 3.12.1 → 3.12.2-dev.1783567547

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 (117) 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/input-gateway/vehicle-positions/VehiclePositionsController.js +0 -1
  21. package/dist/input-gateway/vehicle-positions/VehiclePositionsController.js.map +1 -1
  22. package/dist/integration-engine/data-retention/ioc/RetentionContainerToken.js +1 -1
  23. package/dist/integration-engine/data-retention/ioc/RetentionContainerToken.js.map +1 -1
  24. package/dist/integration-engine/ioc/ModuleContainerToken.js +9 -9
  25. package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
  26. package/dist/integration-engine/jis/datasources/JISEventsDataSourceFactory.d.ts +10 -0
  27. package/dist/integration-engine/jis/datasources/JISEventsDataSourceFactory.js +52 -0
  28. package/dist/integration-engine/jis/datasources/JISEventsDataSourceFactory.js.map +1 -0
  29. package/dist/integration-engine/jis/ioc/Di.js +16 -2
  30. package/dist/integration-engine/jis/ioc/Di.js.map +1 -1
  31. package/dist/integration-engine/jis/ioc/JISContainerToken.d.ts +8 -1
  32. package/dist/integration-engine/jis/ioc/JISContainerToken.js +15 -8
  33. package/dist/integration-engine/jis/ioc/JISContainerToken.js.map +1 -1
  34. package/dist/integration-engine/jis/repositories/JISEventsRepository.d.ts +29 -0
  35. package/dist/integration-engine/jis/repositories/JISEventsRepository.js +113 -0
  36. package/dist/integration-engine/jis/repositories/JISEventsRepository.js.map +1 -0
  37. package/dist/integration-engine/jis/repositories/JISEventsRopidGTFSRoutesRepository.d.ts +30 -0
  38. package/dist/integration-engine/jis/repositories/JISEventsRopidGTFSRoutesRepository.js +88 -0
  39. package/dist/integration-engine/jis/repositories/JISEventsRopidGTFSRoutesRepository.js.map +1 -0
  40. package/dist/integration-engine/jis/repositories/JISInfotextsRepository.js +4 -1
  41. package/dist/integration-engine/jis/repositories/JISInfotextsRepository.js.map +1 -1
  42. package/dist/integration-engine/jis/services/JISEventsDataService.d.ts +20 -0
  43. package/dist/integration-engine/jis/services/JISEventsDataService.js +74 -0
  44. package/dist/integration-engine/jis/services/JISEventsDataService.js.map +1 -0
  45. package/dist/integration-engine/jis/transformations/JISEventsTransformation.d.ts +13 -0
  46. package/dist/integration-engine/jis/transformations/JISEventsTransformation.js +48 -0
  47. package/dist/integration-engine/jis/transformations/JISEventsTransformation.js.map +1 -0
  48. package/dist/integration-engine/jis/workers/JISWorker.js +3 -1
  49. package/dist/integration-engine/jis/workers/JISWorker.js.map +1 -1
  50. package/dist/integration-engine/jis/workers/tasks/FetchJISEventsTask.d.ts +9 -0
  51. package/dist/integration-engine/jis/workers/tasks/FetchJISEventsTask.js +50 -0
  52. package/dist/integration-engine/jis/workers/tasks/FetchJISEventsTask.js.map +1 -0
  53. package/dist/integration-engine/jis/workers/tasks/RefreshJISEventsTask.d.ts +15 -0
  54. package/dist/integration-engine/jis/workers/tasks/RefreshJISEventsTask.js +61 -0
  55. package/dist/integration-engine/jis/workers/tasks/RefreshJISEventsTask.js.map +1 -0
  56. package/dist/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.js.map +1 -1
  57. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +29 -29
  58. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
  59. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +43 -43
  60. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
  61. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateTrainDelayTask.js.map +1 -1
  62. package/dist/output-gateway/pid/ioc/OgPidToken.js +22 -22
  63. package/dist/output-gateway/pid/ioc/OgPidToken.js.map +1 -1
  64. package/dist/output-gateway/pid/service/helpers/PriorityMapper.d.ts +2 -2
  65. package/dist/output-gateway/pid/service/helpers/PriorityMapper.js +4 -4
  66. package/dist/output-gateway/pid/service/helpers/PriorityMapper.js.map +1 -1
  67. package/dist/output-gateway/public/ioc/OgModuleToken.js +26 -26
  68. package/dist/output-gateway/public/ioc/OgModuleToken.js.map +1 -1
  69. package/dist/schema-definitions/jis/constants/jisEventCause.d.ts +1 -0
  70. package/dist/schema-definitions/jis/constants/jisEventCause.js +18 -0
  71. package/dist/schema-definitions/jis/constants/jisEventCause.js.map +1 -0
  72. package/dist/schema-definitions/jis/constants/jisEventEffect.d.ts +1 -0
  73. package/dist/schema-definitions/jis/constants/jisEventEffect.js +17 -0
  74. package/dist/schema-definitions/jis/constants/jisEventEffect.js.map +1 -0
  75. package/dist/schema-definitions/jis/datasources/JISEventsJsonSchema.d.ts +3 -0
  76. package/dist/schema-definitions/jis/datasources/JISEventsJsonSchema.js +88 -0
  77. package/dist/schema-definitions/jis/datasources/JISEventsJsonSchema.js.map +1 -0
  78. package/dist/schema-definitions/jis/datasources/JISInfotextsJsonSchema.js +2 -2
  79. package/dist/schema-definitions/jis/datasources/JISInfotextsJsonSchema.js.map +1 -1
  80. package/dist/schema-definitions/jis/datasources/interfaces/IJISEvent.d.ts +25 -0
  81. package/dist/schema-definitions/jis/datasources/interfaces/IJISEvent.js +3 -0
  82. package/dist/schema-definitions/jis/datasources/interfaces/IJISEvent.js.map +1 -0
  83. package/dist/schema-definitions/jis/datasources/interfaces/IJISEventRoute.d.ts +3 -0
  84. package/dist/schema-definitions/jis/datasources/interfaces/IJISEventRoute.js +3 -0
  85. package/dist/schema-definitions/jis/datasources/interfaces/IJISEventRoute.js.map +1 -0
  86. package/dist/schema-definitions/jis/datasources/interfaces/IJISInfotext.d.ts +2 -2
  87. package/dist/schema-definitions/jis/datasources/interfaces/index.d.ts +2 -0
  88. package/dist/schema-definitions/jis/datasources/interfaces/index.js +2 -0
  89. package/dist/schema-definitions/jis/datasources/interfaces/index.js.map +1 -1
  90. package/dist/schema-definitions/jis/models/JISEventsModel.d.ts +28 -0
  91. package/dist/schema-definitions/jis/models/JISEventsModel.js +137 -0
  92. package/dist/schema-definitions/jis/models/JISEventsModel.js.map +1 -0
  93. package/dist/schema-definitions/jis/models/JISEventsRopidGTFSRoutesModel.d.ts +12 -0
  94. package/dist/schema-definitions/jis/models/JISEventsRopidGTFSRoutesModel.js +41 -0
  95. package/dist/schema-definitions/jis/models/JISEventsRopidGTFSRoutesModel.js.map +1 -0
  96. package/dist/schema-definitions/jis/models/JISInfotextsModel.d.ts +2 -2
  97. package/dist/schema-definitions/jis/models/JISInfotextsModel.js +3 -3
  98. package/dist/schema-definitions/jis/models/JISInfotextsModel.js.map +1 -1
  99. package/dist/schema-definitions/jis/models/interfaces/IJISEvent.d.ts +19 -0
  100. package/dist/schema-definitions/jis/models/interfaces/IJISEvent.js +3 -0
  101. package/dist/schema-definitions/jis/models/interfaces/IJISEvent.js.map +1 -0
  102. package/dist/schema-definitions/jis/models/interfaces/IJISEventsRopidGTFSRoutes.d.ts +4 -0
  103. package/dist/schema-definitions/jis/models/interfaces/IJISEventsRopidGTFSRoutes.js +3 -0
  104. package/dist/schema-definitions/jis/models/interfaces/IJISEventsRopidGTFSRoutes.js.map +1 -0
  105. package/dist/schema-definitions/jis/models/interfaces/IJISInfotext.d.ts +2 -2
  106. package/dist/schema-definitions/jis/models/interfaces/index.d.ts +2 -0
  107. package/dist/schema-definitions/jis/models/interfaces/index.js +2 -0
  108. package/dist/schema-definitions/jis/models/interfaces/index.js.map +1 -1
  109. package/docs/assets/pid_jis_erd.png +0 -0
  110. package/docs/asyncapi.yaml +278 -55
  111. package/docs/implementation_documentation.md +45 -1
  112. package/docs/openapi-input.yaml +328 -58
  113. package/package.json +2 -2
  114. package/dist/input-gateway/jis/JisInfotextsController.js.map +0 -1
  115. package/dist/output-gateway/shared/constants/jis/InfotextSeverityLevelEnum.js +0 -10
  116. package/dist/output-gateway/shared/constants/jis/InfotextSeverityLevelEnum.js.map +0 -1
  117. /package/dist/input-gateway/jis/{JisInfotextsController.d.ts → controllers/JisInfotextsController.d.ts} +0 -0
@@ -0,0 +1,88 @@
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.JISEventsRopidGTFSRoutesRepository = void 0;
16
+ const const_1 = require("../../../schema-definitions/const");
17
+ const JISEventsRopidGTFSRoutesModel_1 = require("../../../schema-definitions/jis/models/JISEventsRopidGTFSRoutesModel");
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 JISEventsRopidGTFSRoutesRepository = exports.JISEventsRopidGTFSRoutesRepository = class JISEventsRopidGTFSRoutesRepository 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 = JISEventsRopidGTFSRoutesModel_1.JISEventsRopidGTFSRoutesModel.tableName;
30
+ this.validator = new golemio_validator_1.JSONSchemaValidator("JISEventsRopidGTFSRoutesRepository", JISEventsRopidGTFSRoutesModel_1.JISEventsRopidGTFSRoutesModel.jsonSchema);
31
+ this.sequelizeModel = connector
32
+ .getConnection()
33
+ .define(this.tableName, JISEventsRopidGTFSRoutesModel_1.JISEventsRopidGTFSRoutesModel.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
+ * Insert or update all given data. In case of an update, all attributes except for `created_at` shall be overwritten.
50
+ *
51
+ * @param data The data to be upserted
52
+ * @param options Options for the operation
53
+ * @returns The upserted items
54
+ */
55
+ async upsertAll(data, options) {
56
+ try {
57
+ return await this.sequelizeModel.bulkCreate(data, {
58
+ updateOnDuplicate: this.getUpdateAttributes(),
59
+ transaction: options?.transaction,
60
+ });
61
+ }
62
+ catch (err) {
63
+ if (err instanceof sequelize_1.ValidationError && err.errors?.length > 0) {
64
+ const mappedErrors = err.errors.map((e) => `${e.message} (${e.value})`).join(", ");
65
+ throw new golemio_errors_1.ValidationError(`Validation error in upsertAll: ${mappedErrors}`, this.constructor.name, err, undefined, "pid");
66
+ }
67
+ throw new golemio_errors_1.GeneralError("Error in upsertAll", this.constructor.name, err);
68
+ }
69
+ }
70
+ getUpdateAttributes() {
71
+ return Object.keys(JISEventsRopidGTFSRoutesModel_1.JISEventsRopidGTFSRoutesModel.attributeModel).filter((attribute) => !["created_at"].includes(attribute));
72
+ }
73
+ async deleteAndCountAll(options) {
74
+ try {
75
+ return await this.sequelizeModel.destroy({ where: {}, transaction: options?.transaction });
76
+ }
77
+ catch (err) {
78
+ throw new golemio_errors_1.GeneralError("Error in deleteAndCountAll", this.constructor.name, err);
79
+ }
80
+ }
81
+ };
82
+ exports.JISEventsRopidGTFSRoutesRepository = JISEventsRopidGTFSRoutesRepository = __decorate([
83
+ (0, tsyringe_1.injectable)(),
84
+ __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
85
+ __param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
86
+ __metadata("design:paramtypes", [Object, Object])
87
+ ], JISEventsRopidGTFSRoutesRepository);
88
+ //# sourceMappingURL=JISEventsRopidGTFSRoutesRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JISEventsRopidGTFSRoutesRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/repositories/JISEventsRopidGTFSRoutesRepository.ts"],"names":[],"mappings":"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"}
@@ -68,7 +68,10 @@ let JISInfotextsRepository = exports.JISInfotextsRepository = class JISInfotexts
68
68
  const toBeUpserted = [];
69
69
  for (const infotext of data) {
70
70
  const info = currentInfotextsMap.get(infotext.id);
71
- if (!info || info.updated_at <= infotext.updated_timestamp) {
71
+ if (!info ||
72
+ info.updated_at <= infotext.updated_timestamp ||
73
+ info.active_period_end?.getTime() !== infotext.active_period_end?.getTime() ||
74
+ info.active_period_start.getTime() !== infotext.active_period_start.getTime()) {
72
75
  toBeUpserted.push(infotext);
73
76
  }
74
77
  currentInfotextsMap.delete(infotext.id);
@@ -1 +1 @@
1
- {"version":3,"file":"JISInfotextsRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/repositories/JISInfotextsRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JISInfotextsRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/repositories/JISInfotextsRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { JISEventsRepository } from "../repositories/JISEventsRepository";
2
+ import { JISEventsRopidGTFSRoutesRepository } from "../repositories/JISEventsRopidGTFSRoutesRepository";
3
+ import { IJISEvent, IJISEventsRopidGTFSRoutes } from "../../../schema-definitions/jis/models/interfaces";
4
+ import { ILogger } from "@golemio/core/dist/helpers";
5
+ import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
6
+ export declare class JISEventsDataService {
7
+ private eventsRepository;
8
+ private eventsRopidGTFSRoutesRepository;
9
+ private databaseConnector;
10
+ private logger;
11
+ constructor(eventsRepository: JISEventsRepository, eventsRopidGTFSRoutesRepository: JISEventsRopidGTFSRoutesRepository, databaseConnector: IDatabaseConnector, logger: ILogger);
12
+ /**
13
+ * Insert or update all given events and eventsRopidGTFSRoutes data. In case of an update, all attributes except for
14
+ * `created_at` shall be overwritten. Delete all non-updated data from before the refresh.
15
+ *
16
+ * @param events The events data to be upserted
17
+ * @param eventsRopidGTFSRoutes The eventsRopidGTFSRoutes data to be upserted
18
+ */
19
+ refreshData(events: IJISEvent[], eventsRopidGTFSRoutes: IJISEventsRopidGTFSRoutes[]): Promise<void>;
20
+ }
@@ -0,0 +1,74 @@
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.JISEventsDataService = void 0;
16
+ const JISContainerToken_1 = require("../ioc/JISContainerToken");
17
+ const JISEventsRepository_1 = require("../repositories/JISEventsRepository");
18
+ const JISEventsRopidGTFSRoutesRepository_1 = require("../repositories/JISEventsRopidGTFSRoutesRepository");
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 tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
22
+ let JISEventsDataService = exports.JISEventsDataService = class JISEventsDataService {
23
+ constructor(eventsRepository, eventsRopidGTFSRoutesRepository, databaseConnector, logger) {
24
+ this.eventsRepository = eventsRepository;
25
+ this.eventsRopidGTFSRoutesRepository = eventsRopidGTFSRoutesRepository;
26
+ this.databaseConnector = databaseConnector;
27
+ this.logger = logger;
28
+ // do nothing
29
+ }
30
+ /**
31
+ * Insert or update all given events and eventsRopidGTFSRoutes data. In case of an update, all attributes except for
32
+ * `created_at` shall be overwritten. Delete all non-updated data from before the refresh.
33
+ *
34
+ * @param events The events data to be upserted
35
+ * @param eventsRopidGTFSRoutes The eventsRopidGTFSRoutes data to be upserted
36
+ */
37
+ async refreshData(events, eventsRopidGTFSRoutes) {
38
+ const connection = this.databaseConnector.getConnection();
39
+ const transaction = await connection.transaction();
40
+ const saveTime = new Date();
41
+ try {
42
+ if (events.length === 0) {
43
+ await this.eventsRopidGTFSRoutesRepository.deleteAndCountAll({ transaction });
44
+ await this.eventsRepository.deleteAndCountAll({ transaction });
45
+ await transaction.commit();
46
+ this.logger.info(`${this.constructor.name}.refreshData: all JIS events were deleted because 0 events were imported`);
47
+ }
48
+ else {
49
+ await this.eventsRepository.refreshData(events, { transaction });
50
+ await this.eventsRopidGTFSRoutesRepository.upsertAll(eventsRopidGTFSRoutes, { transaction });
51
+ await this.eventsRopidGTFSRoutesRepository.deleteAndCountAllLastUpdatedBefore(saveTime, { transaction });
52
+ await transaction.commit();
53
+ this.logger.info(`${this.constructor.name}.refreshData: ${events.length} JIS events and ` +
54
+ `${eventsRopidGTFSRoutes.length} JIS eventsRopidGTFSRoutes were saved`);
55
+ }
56
+ }
57
+ catch (err) {
58
+ await transaction.rollback();
59
+ if (err instanceof golemio_errors_1.GeneralError)
60
+ throw err;
61
+ throw new golemio_errors_1.GeneralError("Refreshing JIS Events in database failed", this.constructor.name, err);
62
+ }
63
+ }
64
+ };
65
+ exports.JISEventsDataService = JISEventsDataService = __decorate([
66
+ (0, tsyringe_1.injectable)(),
67
+ __param(0, (0, tsyringe_1.inject)(JISContainerToken_1.JISContainerToken.JISEventsRepository)),
68
+ __param(1, (0, tsyringe_1.inject)(JISContainerToken_1.JISContainerToken.JISEventsRopidGTFSRoutesRepository)),
69
+ __param(2, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
70
+ __param(3, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
71
+ __metadata("design:paramtypes", [JISEventsRepository_1.JISEventsRepository,
72
+ JISEventsRopidGTFSRoutesRepository_1.JISEventsRopidGTFSRoutesRepository, Object, Object])
73
+ ], JISEventsDataService);
74
+ //# sourceMappingURL=JISEventsDataService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JISEventsDataService.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/services/JISEventsDataService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gEAAkE;AAClE,6EAA+E;AAC/E,2GAA6G;AAI7G,wEAAqE;AACrE,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,oBAAoB,kCAA1B,MAAM,oBAAoB;IAC7B,YAEY,gBAAqC,EAErC,+BAAmE,EAC9B,iBAAqC,EAChD,MAAe;QAJzC,qBAAgB,GAAhB,gBAAgB,CAAqB;QAErC,oCAA+B,GAA/B,+BAA+B,CAAoC;QAC9B,sBAAiB,GAAjB,iBAAiB,CAAoB;QAChD,WAAM,GAAN,MAAM,CAAS;QAEjD,aAAa;IACjB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,WAAW,CAAC,MAAmB,EAAE,qBAAkD;QAC5F,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QAE5B,IAAI;YACA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,MAAM,IAAI,CAAC,+BAA+B,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC9E,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/D,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,0EAA0E,CACrG,CAAC;aACL;iBAAM;gBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBACjE,MAAM,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,qBAAqB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC7F,MAAM,IAAI,CAAC,+BAA+B,CAAC,kCAAkC,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBACzG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,iBAAiB,MAAM,CAAC,MAAM,kBAAkB;oBACpE,GAAG,qBAAqB,CAAC,MAAM,uCAAuC,CAC7E,CAAC;aACL;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,YAAY,6BAAY;gBAAE,MAAM,GAAG,CAAC;YAC3C,MAAM,IAAI,6BAAY,CAAC,0CAA0C,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAClG;IACL,CAAC;CACJ,CAAA;+BAhDY,oBAAoB;IADhC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,qCAAiB,CAAC,mBAAmB,CAAC,CAAA;IAE7C,WAAA,IAAA,iBAAM,EAAC,qCAAiB,CAAC,kCAAkC,CAAC,CAAA;IAE5D,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAA;IACnC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;qCAJC,yCAAmB;QAEJ,uEAAkC;GALtE,oBAAoB,CAgDhC"}
@@ -0,0 +1,13 @@
1
+ import { IJISEvent as IJISEventDataSource } from "../../../schema-definitions/jis/datasources/interfaces";
2
+ import { IJISEvent as IJISEventModel, IJISEventsRopidGTFSRoutes as IJISEventsRopidGTFSRoutesModel } from "../../../schema-definitions/jis/models/interfaces";
3
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
4
+ type TransformIn = IJISEventDataSource;
5
+ type TransformOut = {
6
+ event: IJISEventModel;
7
+ eventsRopidGTFSRoutes: IJISEventsRopidGTFSRoutesModel[];
8
+ };
9
+ export declare class JISEventsTransformation extends AbstractTransformation<TransformIn, TransformOut> {
10
+ name: string;
11
+ protected transformInternal: (data: TransformIn) => TransformOut;
12
+ }
13
+ export {};
@@ -0,0 +1,48 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.JISEventsTransformation = void 0;
10
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
11
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
12
+ let JISEventsTransformation = exports.JISEventsTransformation = class JISEventsTransformation extends AbstractTransformation_1.AbstractTransformation {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.name = "JISEventsTransformation";
16
+ this.transformInternal = (data) => {
17
+ const event = {
18
+ id: data.id,
19
+ type: data.type,
20
+ header_text: data.header_text,
21
+ cause: data.cause,
22
+ cause_detail: data.cause_detail,
23
+ severity_level: data.severity_level,
24
+ active_period_start: new Date(data.active_period.start),
25
+ active_period_end: data.active_period.end ? new Date(data.active_period.end) : null,
26
+ effect: data.effect,
27
+ effect_detail: data.effect_detail,
28
+ description_text: data.description_text,
29
+ url: data.url,
30
+ organization_name: data.organization_name,
31
+ created_timestamp: new Date(data.created_timestamp),
32
+ updated_timestamp: new Date(data.last_modified_timestamp),
33
+ };
34
+ const eventsRopidGTFSRoutes = data.informed_entity?.routes?.map(({ id }) => ({
35
+ event_id: data.id,
36
+ route_id: id,
37
+ })) ?? [];
38
+ return {
39
+ event,
40
+ eventsRopidGTFSRoutes,
41
+ };
42
+ };
43
+ }
44
+ };
45
+ exports.JISEventsTransformation = JISEventsTransformation = __decorate([
46
+ (0, tsyringe_1.injectable)()
47
+ ], JISEventsTransformation);
48
+ //# sourceMappingURL=JISEventsTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JISEventsTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/transformations/JISEventsTransformation.ts"],"names":[],"mappings":";;;;;;;;;AAKA,6GAA0G;AAC1G,iEAAgE;AASzD,IAAM,uBAAuB,qCAA7B,MAAM,uBAAwB,SAAQ,+CAAiD;IAAvF;;QACI,SAAI,GAAG,yBAAyB,CAAC;QAE9B,sBAAiB,GAAG,CAAC,IAAiB,EAAgB,EAAE;YAC9D,MAAM,KAAK,GAAG;gBACV,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,mBAAmB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBACvD,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnF,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,iBAAiB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBACnD,iBAAiB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;aAC5D,CAAC;YACF,MAAM,qBAAqB,GACvB,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3C,QAAQ,EAAE,IAAI,CAAC,EAAE;gBACjB,QAAQ,EAAE,EAAE;aACf,CAAC,CAAC,IAAI,EAAE,CAAC;YACd,OAAO;gBACH,KAAK;gBACL,qBAAqB;aACxB,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA,CAAA;kCA/BY,uBAAuB;IADnC,IAAA,qBAAU,GAAE;GACA,uBAAuB,CA+BnC"}
@@ -14,8 +14,10 @@ class JISWorker extends workers_1.AbstractWorker {
14
14
  task.queuePrefix = this.getQueuePrefix();
15
15
  };
16
16
  // Register tasks
17
- this.registerTask(Di_1.JISContainer.resolve(JISContainerToken_1.JISContainerToken.RefreshJISInfotextsTask));
17
+ this.registerTask(Di_1.JISContainer.resolve(JISContainerToken_1.JISContainerToken.FetchJISEventsTask));
18
18
  this.registerTask(Di_1.JISContainer.resolve(JISContainerToken_1.JISContainerToken.FetchJISInfotextsTask));
19
+ this.registerTask(Di_1.JISContainer.resolve(JISContainerToken_1.JISContainerToken.RefreshJISEventsTask));
20
+ this.registerTask(Di_1.JISContainer.resolve(JISContainerToken_1.JISContainerToken.RefreshJISInfotextsTask));
19
21
  }
20
22
  }
21
23
  exports.JISWorker = JISWorker;
@@ -1 +1 @@
1
- {"version":3,"file":"JISWorker.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/workers/JISWorker.ts"],"names":[],"mappings":";;;AAAA,2EAA+E;AAE/E,kCAAyC;AACzC,gEAA6D;AAC7D,2CAA8C;AAI9C,MAAa,SAAU,SAAQ,wBAAc;IAGzC;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,2BAAe,CAAC,WAAW,EAAE,CAAC;QAUxC,iBAAY,GAAG,CAAC,IAAW,EAAQ,EAAE;YACxC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QARE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,iBAAY,CAAC,OAAO,CAA0B,qCAAiB,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC5G,IAAI,CAAC,YAAY,CAAC,iBAAY,CAAC,OAAO,CAAwB,qCAAiB,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC5G,CAAC;CAMJ;AAfD,8BAeC"}
1
+ {"version":3,"file":"JISWorker.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/workers/JISWorker.ts"],"names":[],"mappings":";;;AAAA,2EAA+E;AAE/E,kCAAyC;AACzC,gEAA6D;AAC7D,2CAA8C;AAM9C,MAAa,SAAU,SAAQ,wBAAc;IAGzC;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAG,2BAAe,CAAC,WAAW,EAAE,CAAC;QAYxC,iBAAY,GAAG,CAAC,IAAW,EAAQ,EAAE;YACxC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAVE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,iBAAY,CAAC,OAAO,CAAqB,qCAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAClG,IAAI,CAAC,YAAY,CAAC,iBAAY,CAAC,OAAO,CAAwB,qCAAiB,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,YAAY,CAAC,iBAAY,CAAC,OAAO,CAAuB,qCAAiB,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,YAAY,CAAC,iBAAY,CAAC,OAAO,CAA0B,qCAAiB,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAChH,CAAC;CAMJ;AAjBD,8BAiBC"}
@@ -0,0 +1,9 @@
1
+ import { JISEventsDataSourceFactory } from "../../datasources/JISEventsDataSourceFactory";
2
+ import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
3
+ export declare class FetchJISEventsTask extends AbstractEmptyTask {
4
+ private dataSourceFactory;
5
+ readonly queueName = "fetchJISEvents";
6
+ readonly queueTtl: number;
7
+ constructor(dataSourceFactory: JISEventsDataSourceFactory);
8
+ protected execute(): Promise<void>;
9
+ }
@@ -0,0 +1,50 @@
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.FetchJISEventsTask = void 0;
16
+ const JISEventsDataSourceFactory_1 = require("../../datasources/JISEventsDataSourceFactory");
17
+ const JISContainerToken_1 = require("../../ioc/JISContainerToken");
18
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
19
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
20
+ const constants_1 = require("../constants");
21
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
22
+ let FetchJISEventsTask = exports.FetchJISEventsTask = class FetchJISEventsTask extends integration_engine_1.AbstractEmptyTask {
23
+ constructor(dataSourceFactory) {
24
+ super(constants_1.JIS_WORKER_NAME.toLowerCase());
25
+ this.dataSourceFactory = dataSourceFactory;
26
+ this.queueName = "fetchJISEvents";
27
+ this.queueTtl = 20 * 1000; // 20 seconds
28
+ }
29
+ async execute() {
30
+ try {
31
+ const dataSource = this.dataSourceFactory.getDataSource();
32
+ const data = await dataSource.getAll();
33
+ await integration_engine_1.QueueManager.sendMessageToExchange(this.queuePrefix, "refreshJISEvents", data);
34
+ }
35
+ catch (err) {
36
+ if (err instanceof golemio_errors_1.AbstractGolemioError) {
37
+ throw err;
38
+ }
39
+ else {
40
+ throw new golemio_errors_1.GeneralError("Error while fetching new JIS events", this.constructor.name, err);
41
+ }
42
+ }
43
+ }
44
+ };
45
+ exports.FetchJISEventsTask = FetchJISEventsTask = __decorate([
46
+ (0, tsyringe_1.injectable)(),
47
+ __param(0, (0, tsyringe_1.inject)(JISContainerToken_1.JISContainerToken.JISEventsDataSourceFactory)),
48
+ __metadata("design:paramtypes", [JISEventsDataSourceFactory_1.JISEventsDataSourceFactory])
49
+ ], FetchJISEventsTask);
50
+ //# sourceMappingURL=FetchJISEventsTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchJISEventsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/jis/workers/tasks/FetchJISEventsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6FAA4F;AAC5F,mEAAkE;AAClE,8EAAwF;AACxF,iEAAwE;AACxE,4CAA+C;AAC/C,6EAA8F;AAGvF,IAAM,kBAAkB,gCAAxB,MAAM,kBAAmB,SAAQ,sCAAiB;IAIrD,YAEI,iBAAqD;QAErD,KAAK,CAAC,2BAAe,CAAC,WAAW,EAAE,CAAC,CAAC;QAF7B,sBAAiB,GAAjB,iBAAiB,CAA4B;QALzC,cAAS,GAAG,gBAAgB,CAAC;QAC7B,aAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;IAOnD,CAAC;IAES,KAAK,CAAC,OAAO;QACnB,IAAI;YACA,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;YAC1D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC;YAEvC,MAAM,iCAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;SACxF;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;gBACrC,MAAM,GAAG,CAAC;aACb;iBAAM;gBACH,MAAM,IAAI,6BAAY,CAAC,qCAAqC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aAC7F;SACJ;IACL,CAAC;CACJ,CAAA;6BAzBY,kBAAkB;IAD9B,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,qCAAiB,CAAC,0BAA0B,CAAC,CAAA;qCAC1B,uDAA0B;GANhD,kBAAkB,CAyB9B"}
@@ -0,0 +1,15 @@
1
+ import { JISEventsDataService } from "../../services/JISEventsDataService";
2
+ import { JISEventsTransformation } from "../../transformations/JISEventsTransformation";
3
+ import { IJISEvent } from "../../../../schema-definitions/jis/datasources/interfaces";
4
+ import { AbstractTaskJsonSchema } from "@golemio/core/dist/integration-engine/workers/AbstractTaskJsonSchema";
5
+ import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
6
+ export declare class RefreshJISEventsTask extends AbstractTaskJsonSchema<IJISEvent[]> {
7
+ private eventsDataService;
8
+ private eventsTransformation;
9
+ readonly schema: JSONSchemaValidator;
10
+ readonly queueName = "refreshJISEvents";
11
+ readonly queueTtl: number;
12
+ constructor(eventsDataService: JISEventsDataService, eventsTransformation: JISEventsTransformation);
13
+ protected execute(data: IJISEvent[]): Promise<void>;
14
+ private getEntitiesFromTransformationResult;
15
+ }
@@ -0,0 +1,61 @@
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.RefreshJISEventsTask = void 0;
16
+ const JISContainerToken_1 = require("../../ioc/JISContainerToken");
17
+ const JISEventsDataService_1 = require("../../services/JISEventsDataService");
18
+ const JISEventsTransformation_1 = require("../../transformations/JISEventsTransformation");
19
+ const JISEventsJsonSchema_1 = require("../../../../schema-definitions/jis/datasources/JISEventsJsonSchema");
20
+ const AbstractTaskJsonSchema_1 = require("@golemio/core/dist/integration-engine/workers/AbstractTaskJsonSchema");
21
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
22
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
23
+ const constants_1 = require("../constants");
24
+ let RefreshJISEventsTask = exports.RefreshJISEventsTask = class RefreshJISEventsTask extends AbstractTaskJsonSchema_1.AbstractTaskJsonSchema {
25
+ constructor(eventsDataService, eventsTransformation) {
26
+ super(constants_1.JIS_WORKER_NAME.toLowerCase());
27
+ this.eventsDataService = eventsDataService;
28
+ this.eventsTransformation = eventsTransformation;
29
+ this.schema = new golemio_validator_1.JSONSchemaValidator("JISEventsDataValidation", JISEventsJsonSchema_1.jisEventsJsonSchema);
30
+ this.queueName = "refreshJISEvents";
31
+ this.queueTtl = 60 * 1000; // 1 minute
32
+ }
33
+ async execute(data) {
34
+ const transformedData = this.eventsTransformation.transformArray(data);
35
+ const { events, eventsRopidGTFSRoutes } = this.getEntitiesFromTransformationResult(transformedData);
36
+ await this.eventsDataService.refreshData(events, eventsRopidGTFSRoutes);
37
+ }
38
+ getEntitiesFromTransformationResult(transformedData) {
39
+ const eventEntities = [];
40
+ const eventsRopidGTFSRoutesEntities = [];
41
+ for (const { event, eventsRopidGTFSRoutes } of transformedData) {
42
+ if (eventsRopidGTFSRoutes.length === 0) {
43
+ continue;
44
+ }
45
+ eventEntities.push(event);
46
+ eventsRopidGTFSRoutesEntities.push(...eventsRopidGTFSRoutes);
47
+ }
48
+ return {
49
+ events: eventEntities,
50
+ eventsRopidGTFSRoutes: eventsRopidGTFSRoutesEntities,
51
+ };
52
+ }
53
+ };
54
+ exports.RefreshJISEventsTask = RefreshJISEventsTask = __decorate([
55
+ (0, tsyringe_1.injectable)(),
56
+ __param(0, (0, tsyringe_1.inject)(JISContainerToken_1.JISContainerToken.JISEventsDataService)),
57
+ __param(1, (0, tsyringe_1.inject)(JISContainerToken_1.JISContainerToken.JISEventsTransformation)),
58
+ __metadata("design:paramtypes", [JISEventsDataService_1.JISEventsDataService,
59
+ JISEventsTransformation_1.JISEventsTransformation])
60
+ ], RefreshJISEventsTask);
61
+ //# sourceMappingURL=RefreshJISEventsTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshJISEventsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/jis/workers/tasks/RefreshJISEventsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mEAAkE;AAClE,8EAA6E;AAC7E,2FAA0F;AAE1F,4GAA+E;AAE/E,iHAA8G;AAC9G,mFAAkF;AAClF,iEAAwE;AACxE,4CAA+C;AAGxC,IAAM,oBAAoB,kCAA1B,MAAM,oBAAqB,SAAQ,+CAAmC;IAKzE,YAEI,iBAA+C,EAE/C,oBAAqD;QAErD,KAAK,CAAC,2BAAe,CAAC,WAAW,EAAE,CAAC,CAAC;QAJ7B,sBAAiB,GAAjB,iBAAiB,CAAsB;QAEvC,yBAAoB,GAApB,oBAAoB,CAAyB;QARzC,WAAM,GAAG,IAAI,uCAAmB,CAAC,yBAAyB,EAAE,yCAAmB,CAAC,CAAC;QACjF,cAAS,GAAG,kBAAkB,CAAC;QAC/B,aAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;IASjD,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAiB;QACrC,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC,mCAAmC,CAAC,eAAe,CAAC,CAAC;QACpG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC5E,CAAC;IAEO,mCAAmC,CAAC,eAAsE;QAC9G,MAAM,aAAa,GAAqB,EAAE,CAAC;QAC3C,MAAM,6BAA6B,GAAgC,EAAE,CAAC;QACtE,KAAK,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,eAAe,EAAE;YAC5D,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACpC,SAAS;aACZ;YACD,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,6BAA6B,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC;SAChE;QACD,OAAO;YACH,MAAM,EAAE,aAAa;YACrB,qBAAqB,EAAE,6BAA6B;SACvD,CAAC;IACN,CAAC;CACJ,CAAA;+BAnCY,oBAAoB;IADhC,IAAA,qBAAU,GAAE;IAOJ,WAAA,IAAA,iBAAM,EAAC,qCAAiB,CAAC,oBAAoB,CAAC,CAAA;IAE9C,WAAA,IAAA,iBAAM,EAAC,qCAAiB,CAAC,uBAAuB,CAAC,CAAA;qCADvB,2CAAoB;QAEjB,iDAAuB;GAThD,oBAAoB,CAmChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DelayComputationRedisRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DelayComputationRedisRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/cache/DelayComputationRedisRepository.ts"],"names":[],"mappings":"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"}
@@ -2,35 +2,35 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RopidGtfsContainerToken = void 0;
4
4
  const RopidGtfsContainerToken = {
5
- BlockStopsRedisRepository: Symbol(),
6
- RopidGtfsMetadataRepository: Symbol(),
7
- PrecomputedTablesFacade: Symbol(),
8
- StaticFileRedisRepository: Symbol(),
9
- RopidGTFSTransformation: Symbol(),
10
- PublicDepartureCacheTransformation: Symbol(),
11
- RopidGtfsFactory: Symbol(),
12
- RedisPubSubChannel: Symbol(),
13
- RopidGtfsRepository: Symbol(),
14
- DepartureRepository: Symbol(),
15
- PublicGtfsDepartureRepository: Symbol(),
16
- DeparturePresetsFacade: Symbol(),
17
- RopidGtfsFacade: Symbol(),
18
- RefreshPublicGtfsDepartureCacheTask: Symbol(),
19
- DeparturesPresetsDataSource: Symbol(),
20
- CheckForNewDeparturesPresetsTask: Symbol(),
21
- DownloadDeparturesPresetsTask: Symbol(),
22
- RopidGTFSStopsModel: Symbol(),
23
- StaticDataSourceFactory: Symbol(),
24
- DepartureDirectionModel: Symbol(),
25
- DeparturesDirectionRepository: Symbol(),
26
- MetroRailtrackDataTransformation: Symbol(),
27
- MetroRailtrackGPSRepository: Symbol(),
28
- MetroRailTrackDataSourceProvider: Symbol(),
29
- DeparturesDirectionDataSourceProvider: Symbol(),
30
- SaveStaticDataTask: Symbol(),
31
- DeparturesDirectionTransformation: Symbol(),
32
- RopidDeparturesPresetsRopidGTFSStopsRepository: Symbol(),
33
- GtfsStopParser: Symbol(),
5
+ BlockStopsRedisRepository: Symbol("BlockStopsRedisRepository"),
6
+ RopidGtfsMetadataRepository: Symbol("RopidGtfsMetadataRepository"),
7
+ PrecomputedTablesFacade: Symbol("PrecomputedTablesFacade"),
8
+ StaticFileRedisRepository: Symbol("StaticFileRedisRepository"),
9
+ RopidGTFSTransformation: Symbol("RopidGTFSTransformation"),
10
+ PublicDepartureCacheTransformation: Symbol("PublicDepartureCacheTransformation"),
11
+ RopidGtfsFactory: Symbol("RopidGtfsFactory"),
12
+ RedisPubSubChannel: Symbol("RedisPubSubChannel"),
13
+ RopidGtfsRepository: Symbol("RopidGtfsRepository"),
14
+ DepartureRepository: Symbol("DepartureRepository"),
15
+ PublicGtfsDepartureRepository: Symbol("PublicGtfsDepartureRepository"),
16
+ DeparturePresetsFacade: Symbol("DeparturePresetsFacade"),
17
+ RopidGtfsFacade: Symbol("RopidGtfsFacade"),
18
+ RefreshPublicGtfsDepartureCacheTask: Symbol("RefreshPublicGtfsDepartureCacheTask"),
19
+ DeparturesPresetsDataSource: Symbol("DeparturesPresetsDataSource"),
20
+ CheckForNewDeparturesPresetsTask: Symbol("CheckForNewDeparturesPresetsTask"),
21
+ DownloadDeparturesPresetsTask: Symbol("DownloadDeparturesPresetsTask"),
22
+ RopidGTFSStopsModel: Symbol("RopidGTFSStopsModel"),
23
+ StaticDataSourceFactory: Symbol("StaticDataSourceFactory"),
24
+ DepartureDirectionModel: Symbol("DepartureDirectionModel"),
25
+ DeparturesDirectionRepository: Symbol("DeparturesDirectionRepository"),
26
+ MetroRailtrackDataTransformation: Symbol("MetroRailtrackDataTransformation"),
27
+ MetroRailtrackGPSRepository: Symbol("MetroRailtrackGPSRepository"),
28
+ MetroRailTrackDataSourceProvider: Symbol("MetroRailTrackDataSourceProvider"),
29
+ DeparturesDirectionDataSourceProvider: Symbol("DeparturesDirectionDataSourceProvider"),
30
+ SaveStaticDataTask: Symbol("SaveStaticDataTask"),
31
+ DeparturesDirectionTransformation: Symbol("DeparturesDirectionTransformation"),
32
+ RopidDeparturesPresetsRopidGTFSStopsRepository: Symbol("RopidDeparturesPresetsRopidGTFSStopsRepository"),
33
+ GtfsStopParser: Symbol("GtfsStopParser"),
34
34
  };
35
35
  exports.RopidGtfsContainerToken = RopidGtfsContainerToken;
36
36
  //# sourceMappingURL=RopidGtfsContainerToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RopidGtfsContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,uBAAuB,GAAG;IAC5B,yBAAyB,EAAE,MAAM,EAAE;IACnC,2BAA2B,EAAE,MAAM,EAAE;IACrC,uBAAuB,EAAE,MAAM,EAAE;IACjC,yBAAyB,EAAE,MAAM,EAAE;IACnC,uBAAuB,EAAE,MAAM,EAAE;IACjC,kCAAkC,EAAE,MAAM,EAAE;IAC5C,gBAAgB,EAAE,MAAM,EAAE;IAC1B,kBAAkB,EAAE,MAAM,EAAE;IAC5B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,mBAAmB,EAAE,MAAM,EAAE;IAC7B,6BAA6B,EAAE,MAAM,EAAE;IACvC,sBAAsB,EAAE,MAAM,EAAE;IAChC,eAAe,EAAE,MAAM,EAAE;IACzB,mCAAmC,EAAE,MAAM,EAAE;IAC7C,2BAA2B,EAAE,MAAM,EAAE;IACrC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,6BAA6B,EAAE,MAAM,EAAE;IACvC,mBAAmB,EAAE,MAAM,EAAE;IAC7B,uBAAuB,EAAE,MAAM,EAAE;IACjC,uBAAuB,EAAE,MAAM,EAAE;IACjC,6BAA6B,EAAE,MAAM,EAAE;IACvC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,2BAA2B,EAAE,MAAM,EAAE;IACrC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,qCAAqC,EAAE,MAAM,EAAE;IAC/C,kBAAkB,EAAE,MAAM,EAAE;IAC5B,iCAAiC,EAAE,MAAM,EAAE;IAC3C,8CAA8C,EAAE,MAAM,EAAE;IACxD,cAAc,EAAE,MAAM,EAAE;CAC3B,CAAC;AAEO,0DAAuB"}
1
+ {"version":3,"file":"RopidGtfsContainerToken.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,uBAAuB,GAAG;IAC5B,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAC9D,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;IAC9D,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,kCAAkC,EAAE,MAAM,CAAC,oCAAoC,CAAC;IAChF,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC5C,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,sBAAsB,EAAE,MAAM,CAAC,wBAAwB,CAAC;IACxD,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;IAC1C,mCAAmC,EAAE,MAAM,CAAC,qCAAqC,CAAC;IAClF,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAClD,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,6BAA6B,EAAE,MAAM,CAAC,+BAA+B,CAAC;IACtE,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,qCAAqC,EAAE,MAAM,CAAC,uCAAuC,CAAC;IACtF,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,iCAAiC,EAAE,MAAM,CAAC,mCAAmC,CAAC;IAC9E,8CAA8C,EAAE,MAAM,CAAC,gDAAgD,CAAC;IACxG,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;CAC3C,CAAC;AAEO,0DAAuB"}