@golemio/pid 3.12.0-dev.1769425224 → 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,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":";;;;;;;;;;;;;;;AAAA,6DAAuC;AACvC,wHAA8F;AAI9F,8IAA2I;AAC3I,wEAAqE;AACrE,6EAAyF;AACzF,mFAAkF;AAClF,mEAAgI;AAChI,iEAAwE;AAOjE,IAAM,kCAAkC,gDAAxC,MAAM,kCAAmC,SAAQ,6DAA6B;IAOjF,YACyC,SAA6B,EACxC,MAAuB;QAEjD,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAFS,WAAM,GAAN,MAAM,CAAS;QAP9C,WAAM,GAAG,iBAAS,CAAC;QACnB,cAAS,GAAG,6DAA6B,CAAC,SAAS,CAAC;QASvD,IAAI,CAAC,SAAS,GAAG,IAAI,uCAAmB,CAAC,oCAAoC,EAAE,6DAA6B,CAAC,UAAU,CAAC,CAAC;QACzH,IAAI,CAAC,cAAc,GAAG,SAAS;aAC1B,aAAa,EAAE;aACf,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,6DAA6B,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACvG,CAAC;IAEM,KAAK,CAAC,kCAAkC,CAAC,QAAc,EAAE,OAA2B;QACvF,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBACrC,KAAK,EAAE;oBACH,UAAU,EAAE,EAAE,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE;iBACpC;gBACD,WAAW,EAAE,OAAO,EAAE,WAAW;aACpC,CAAC,CAAC;SACN;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAAC,6CAA6C,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACrG;IACL,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,SAAS,CAClB,IAAiC,EACjC,OAA2B;QAE3B,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE;gBAC9C,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,EAAS;gBACpD,WAAW,EAAE,OAAO,EAAE,WAAW;aACpC,CAAC,CAAC;SACN;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,YAAY,2BAAwB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;gBACnE,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnF,MAAM,IAAI,gCAAe,CACrB,kCAAkC,YAAY,EAAE,EAChD,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,EACH,SAAS,EACT,KAAK,CACR,CAAC;aACL;YACD,MAAM,IAAI,6BAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC5E;IACL,CAAC;IAEO,mBAAmB;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,6DAA6B,CAAC,cAAc,CAAC,CAAC,MAAM,CACnE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CACrD,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,OAA2B;QACtD,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;SAC9F;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAAC,4BAA4B,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACpF;IACL,CAAC;CACJ,CAAA;6CA3EY,kCAAkC;IAD9C,IAAA,qBAAU,GAAE;IASJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAA;IACnC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GATpB,kCAAkC,CA2E9C"}
@@ -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"}
@@ -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"}
@@ -3,58 +3,58 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VPContainerToken = void 0;
4
4
  const VPContainerToken = {
5
5
  //#region Vehicle Positions
6
- TripRepository: Symbol(),
7
- PublicStopTimeRepository: Symbol(),
8
- PublicApiCacheRepository: Symbol(),
9
- PublicStopTimeCacheRepository: Symbol(),
10
- PublicApiTripTransformation: Symbol(),
11
- GtfsTripDataFixerFactory: Symbol(),
12
- HttpGtfsTripDataFixer: Symbol(),
13
- RefreshPublicTripCacheTask: Symbol(),
14
- RefreshPublicStopTimeCacheTask: Symbol(),
15
- RefreshGtfsTripDataTask: Symbol(),
16
- PositionsManager: Symbol(),
17
- RegionalBusPositionsManager: Symbol(),
6
+ TripRepository: Symbol("TripRepository"),
7
+ PublicStopTimeRepository: Symbol("PublicStopTimeRepository"),
8
+ PublicApiCacheRepository: Symbol("PublicApiCacheRepository"),
9
+ PublicStopTimeCacheRepository: Symbol("PublicStopTimeCacheRepository"),
10
+ PublicApiTripTransformation: Symbol("PublicApiTripTransformation"),
11
+ GtfsTripDataFixerFactory: Symbol("GtfsTripDataFixerFactory"),
12
+ HttpGtfsTripDataFixer: Symbol("HttpGtfsTripDataFixer"),
13
+ RefreshPublicTripCacheTask: Symbol("RefreshPublicTripCacheTask"),
14
+ RefreshPublicStopTimeCacheTask: Symbol("RefreshPublicStopTimeCacheTask"),
15
+ RefreshGtfsTripDataTask: Symbol("RefreshGtfsTripDataTask"),
16
+ PositionsManager: Symbol("PositionsManager"),
17
+ RegionalBusPositionsManager: Symbol("RegionalBusPositionsManager"),
18
18
  //#endregion
19
19
  //#region Runs
20
- RegionalBusCisCacheRepository: Symbol(),
21
- RegionalBusGtfsCacheRepository: Symbol(),
22
- RegionalBusRunsMessagesRepository: Symbol(),
23
- RegionalBusRunsMessagesTransformation: Symbol(),
24
- CisLookupManager: Symbol(),
25
- GtfsLookupManager: Symbol(),
26
- TripScheduleManager: Symbol(),
27
- BusMessageFilter: Symbol(),
28
- TramMessageFilter: Symbol(),
29
- RegionalBusMessageFilter: Symbol(),
30
- RegionalBusRunsFacade: Symbol(),
31
- SaveArrivaCityRunsToDBTask: Symbol(),
32
- SaveTramRunsToDBTask: Symbol(),
33
- SaveBusRunsToDBTask: Symbol(),
34
- SaveMetroRunsToDBTask: Symbol(),
35
- ProcessMetroRunMessagesTask: Symbol(),
36
- ProcessRegionalBusRunMessagesTask: Symbol(),
37
- MetroRunsMessagesTransformation: Symbol(),
38
- CommonRunsMessagesTransformation: Symbol(),
20
+ RegionalBusCisCacheRepository: Symbol("RegionalBusCisCacheRepository"),
21
+ RegionalBusGtfsCacheRepository: Symbol("RegionalBusGtfsCacheRepository"),
22
+ RegionalBusRunsMessagesRepository: Symbol("RegionalBusRunsMessagesRepository"),
23
+ RegionalBusRunsMessagesTransformation: Symbol("RegionalBusRunsMessagesTransformation"),
24
+ CisLookupManager: Symbol("CisLookupManager"),
25
+ GtfsLookupManager: Symbol("GtfsLookupManager"),
26
+ TripScheduleManager: Symbol("TripScheduleManager"),
27
+ BusMessageFilter: Symbol("BusMessageFilter"),
28
+ TramMessageFilter: Symbol("TramMessageFilter"),
29
+ RegionalBusMessageFilter: Symbol("RegionalBusMessageFilter"),
30
+ RegionalBusRunsFacade: Symbol("RegionalBusRunsFacade"),
31
+ SaveArrivaCityRunsToDBTask: Symbol("SaveArrivaCityRunsToDBTask"),
32
+ SaveTramRunsToDBTask: Symbol("SaveTramRunsToDBTask"),
33
+ SaveBusRunsToDBTask: Symbol("SaveBusRunsToDBTask"),
34
+ SaveMetroRunsToDBTask: Symbol("SaveMetroRunsToDBTask"),
35
+ ProcessMetroRunMessagesTask: Symbol("ProcessMetroRunMessagesTask"),
36
+ ProcessRegionalBusRunMessagesTask: Symbol("ProcessRegionalBusRunMessagesTask"),
37
+ MetroRunsMessagesTransformation: Symbol("MetroRunsMessagesTransformation"),
38
+ CommonRunsMessagesTransformation: Symbol("CommonRunsMessagesTransformation"),
39
39
  //#endregion
40
40
  //#region Vehicle Descriptors
41
- SeznamAutobusuDataSourceProvider: Symbol(),
42
- DescriptorDataSourceFactory: Symbol(),
43
- DescriptorRepository: Symbol(),
44
- DescriptorTransformation: Symbol(),
45
- DescriptorFilter: Symbol(),
46
- RefreshDescriptorsTask: Symbol(),
47
- DeleteDataTask: Symbol(),
41
+ SeznamAutobusuDataSourceProvider: Symbol("SeznamAutobusuDataSourceProvider"),
42
+ DescriptorDataSourceFactory: Symbol("DescriptorDataSourceFactory"),
43
+ DescriptorRepository: Symbol("DescriptorRepository"),
44
+ DescriptorTransformation: Symbol("DescriptorTransformation"),
45
+ DescriptorFilter: Symbol("DescriptorFilter"),
46
+ RefreshDescriptorsTask: Symbol("RefreshDescriptorsTask"),
47
+ DeleteDataTask: Symbol("DeleteDataTask"),
48
48
  //#endregion
49
49
  //#region Vehicle Positions
50
50
  //#region DataAccess
51
- MetroRailtrackGPSRepository: Symbol(),
52
- CachedMetroRailTrackLookup: Symbol(),
51
+ MetroRailtrackGPSRepository: Symbol("MetroRailtrackGPSRepository"),
52
+ CachedMetroRailTrackLookup: Symbol("CachedMetroRailTrackLookup"),
53
53
  //#endregion
54
54
  //#region Helpers
55
- MetroShapePointsFixer: Symbol(),
56
- TimestampValidator: Symbol(),
57
- ValidToCalculator: Symbol(),
55
+ MetroShapePointsFixer: Symbol("MetroShapePointsFixer"),
56
+ TimestampValidator: Symbol("TimestampValidator"),
57
+ ValidToCalculator: Symbol("ValidToCalculator"),
58
58
  //#endregion
59
59
  //#endregion
60
60
  };