@golemio/pid 2.1.4 → 2.1.6-dev.449180636

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 (92) hide show
  1. package/db/example/__truncate_tables.sql +1 -0
  2. package/db/example/ropidvymi_example.sql +12 -12
  3. package/db/example/zzz_precomputed_tables.sql +70 -0
  4. package/db/migrations/postgresql/20211213120726-ropidvymi-refactoring.js +53 -0
  5. package/db/migrations/postgresql/20220112085841-ropidgtfs-scheduled-trips.js +53 -0
  6. package/db/migrations/postgresql/package.json +3 -0
  7. package/db/migrations/postgresql/sqls/20211213120726-ropidvymi-refactoring-down.sql +45 -0
  8. package/db/migrations/postgresql/sqls/20211213120726-ropidvymi-refactoring-up.sql +54 -0
  9. package/db/migrations/postgresql/sqls/20220112085841-ropidgtfs-scheduled-trips-down.sql +2 -0
  10. package/db/migrations/postgresql/sqls/20220112085841-ropidgtfs-scheduled-trips-up.sql +39 -0
  11. package/db/migrations/postgresql/sqls/package.json +3 -0
  12. package/dist/integration-engine/queueDefinitions.js +13 -3
  13. package/dist/integration-engine/queueDefinitions.js.map +1 -1
  14. package/dist/integration-engine/ropid-gtfs/RopidGTFSMetadataModel.d.ts +3 -36
  15. package/dist/integration-engine/ropid-gtfs/RopidGTFSMetadataModel.js +21 -321
  16. package/dist/integration-engine/ropid-gtfs/RopidGTFSMetadataModel.js.map +1 -1
  17. package/dist/integration-engine/ropid-gtfs/RopidGTFSScheduledTripsModel.d.ts +21 -0
  18. package/dist/integration-engine/ropid-gtfs/RopidGTFSScheduledTripsModel.js +150 -0
  19. package/dist/integration-engine/ropid-gtfs/RopidGTFSScheduledTripsModel.js.map +1 -0
  20. package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.d.ts +1 -0
  21. package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.js +16 -12
  22. package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.js.map +1 -1
  23. package/dist/integration-engine/ropid-gtfs/index.d.ts +1 -0
  24. package/dist/integration-engine/ropid-gtfs/index.js +1 -0
  25. package/dist/integration-engine/ropid-gtfs/index.js.map +1 -1
  26. package/dist/integration-engine/ropid-vymi/RopidVYMIEventsTransformation.d.ts +11 -11
  27. package/dist/integration-engine/ropid-vymi/RopidVYMIEventsTransformation.js +45 -39
  28. package/dist/integration-engine/ropid-vymi/RopidVYMIEventsTransformation.js.map +1 -1
  29. package/dist/integration-engine/ropid-vymi/RopidVYMIWorker.d.ts +15 -2
  30. package/dist/integration-engine/ropid-vymi/RopidVYMIWorker.js +115 -17
  31. package/dist/integration-engine/ropid-vymi/RopidVYMIWorker.js.map +1 -1
  32. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsModel.d.ts +0 -16
  33. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsModel.js +2 -46
  34. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsModel.js.map +1 -1
  35. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.d.ts +0 -14
  36. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.js +2 -48
  37. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.js.map +1 -1
  38. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsStopsModel.d.ts +0 -13
  39. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsStopsModel.js +2 -50
  40. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsStopsModel.js.map +1 -1
  41. package/dist/integration-engine/ropid-vymi/models/RopidVYMIMetadataModel.d.ts +8 -0
  42. package/dist/integration-engine/ropid-vymi/models/RopidVYMIMetadataModel.js +44 -0
  43. package/dist/integration-engine/ropid-vymi/models/RopidVYMIMetadataModel.js.map +1 -0
  44. package/dist/integration-engine/ropid-vymi/models/index.d.ts +1 -0
  45. package/dist/integration-engine/ropid-vymi/models/index.js +1 -0
  46. package/dist/integration-engine/ropid-vymi/models/index.js.map +1 -1
  47. package/dist/integration-engine/shared/RopidMetadataModel.d.ts +29 -0
  48. package/dist/integration-engine/shared/RopidMetadataModel.js +261 -0
  49. package/dist/integration-engine/shared/RopidMetadataModel.js.map +1 -0
  50. package/dist/integration-engine/shared/index.d.ts +1 -0
  51. package/dist/integration-engine/shared/index.js +14 -0
  52. package/dist/integration-engine/shared/index.js.map +1 -0
  53. package/dist/integration-engine/vehicle-positions/VehiclePositionsRunsModel.d.ts +2 -0
  54. package/dist/integration-engine/vehicle-positions/VehiclePositionsRunsModel.js +21 -85
  55. package/dist/integration-engine/vehicle-positions/VehiclePositionsRunsModel.js.map +1 -1
  56. package/dist/output-gateway/departure-boards/DepartureBoardsRouter.d.ts +0 -4
  57. package/dist/output-gateway/departure-boards/DepartureBoardsRouter.js +6 -25
  58. package/dist/output-gateway/departure-boards/DepartureBoardsRouter.js.map +1 -1
  59. package/dist/output-gateway/pid/PIDRouter.d.ts +0 -4
  60. package/dist/output-gateway/pid/PIDRouter.js +7 -16
  61. package/dist/output-gateway/pid/PIDRouter.js.map +1 -1
  62. package/dist/output-gateway/pid/models/PIDDepartureBoardsModel.js +1 -1
  63. package/dist/output-gateway/pid/models/PIDDepartureBoardsModel.js.map +1 -1
  64. package/dist/output-gateway/pid/models/RopidVYMIEventsStopsModel.js +2 -3
  65. package/dist/output-gateway/pid/models/RopidVYMIEventsStopsModel.js.map +1 -1
  66. package/dist/output-gateway/shared/RopidRouterUtils.d.ts +12 -0
  67. package/dist/output-gateway/shared/RopidRouterUtils.js +45 -0
  68. package/dist/output-gateway/shared/RopidRouterUtils.js.map +1 -0
  69. package/dist/output-gateway/shared/index.d.ts +1 -0
  70. package/dist/output-gateway/shared/index.js +14 -0
  71. package/dist/output-gateway/shared/index.js.map +1 -0
  72. package/dist/output-gateway/vehicle-positions/VehiclePositionsRouter.d.ts +0 -9
  73. package/dist/output-gateway/vehicle-positions/VehiclePositionsRouter.js +6 -47
  74. package/dist/output-gateway/vehicle-positions/VehiclePositionsRouter.js.map +1 -1
  75. package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.d.ts +65 -0
  76. package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.js +100 -0
  77. package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.js.map +1 -1
  78. package/dist/schema-definitions/ropid-gtfs/index.d.ts +2 -604
  79. package/dist/schema-definitions/ropid-gtfs/index.js +3 -24
  80. package/dist/schema-definitions/ropid-gtfs/index.js.map +1 -1
  81. package/dist/schema-definitions/ropid-vymi/RopidVYMIOutputSchemas.d.ts +135 -126
  82. package/dist/schema-definitions/ropid-vymi/RopidVYMIOutputSchemas.js +138 -129
  83. package/dist/schema-definitions/ropid-vymi/RopidVYMIOutputSchemas.js.map +1 -1
  84. package/dist/schema-definitions/ropid-vymi/RopidVYMISDMA.js +24 -23
  85. package/dist/schema-definitions/ropid-vymi/RopidVYMISDMA.js.map +1 -1
  86. package/dist/schema-definitions/ropid-vymi/index.d.ts +2 -181
  87. package/dist/schema-definitions/ropid-vymi/index.js +7 -0
  88. package/dist/schema-definitions/ropid-vymi/index.js.map +1 -1
  89. package/dist/schema-definitions/shared/index.d.ts +15 -0
  90. package/dist/schema-definitions/shared/index.js +29 -0
  91. package/dist/schema-definitions/shared/index.js.map +1 -0
  92. package/package.json +83 -83
@@ -12,16 +12,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.RopidGTFSMetadataModel = exports.MetaDatasetInfoKeyEnum = exports.MetaStateEnum = exports.MetaTypeEnum = exports.DatasetEnum = void 0;
15
+ exports.RopidGTFSMetadataModel = exports.DatasetEnum = void 0;
16
16
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
17
- const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
18
17
  const sequelize_1 = __importDefault(require("@golemio/core/dist/shared/sequelize"));
19
18
  const connectors_1 = require("@golemio/core/dist/integration-engine/connectors");
20
19
  const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
21
- const models_1 = require("@golemio/core/dist/integration-engine/models");
22
20
  const ropid_gtfs_1 = require("../../schema-definitions/ropid-gtfs");
21
+ const shared_1 = require("../shared");
23
22
  const RopidGTFSDeparturesModel_1 = require("./RopidGTFSDeparturesModel");
24
23
  const RopidGTFSMinMaxSequencesModel_1 = require("./RopidGTFSMinMaxSequencesModel");
24
+ const RopidGTFSScheduledTripsModel_1 = require("./RopidGTFSScheduledTripsModel");
25
25
  const RopidGTFSServicesFirst14daysModel_1 = require("./RopidGTFSServicesFirst14daysModel");
26
26
  const utils_1 = require("./utils");
27
27
  var DatasetEnum;
@@ -32,75 +32,16 @@ var DatasetEnum;
32
32
  DatasetEnum["RUN_NUMBERS"] = "RUN_NUMBERS";
33
33
  DatasetEnum["DEPARTURES_PRESETS"] = "DEPARTURES_PRESETS";
34
34
  })(DatasetEnum = exports.DatasetEnum || (exports.DatasetEnum = {}));
35
- var MetaTypeEnum;
36
- (function (MetaTypeEnum) {
37
- MetaTypeEnum["DATASET_INFO"] = "DATASET_INFO";
38
- MetaTypeEnum["STATE"] = "STATE";
39
- MetaTypeEnum["TABLE_TOTAL_COUNT"] = "TABLE_TOTAL_COUNT";
40
- MetaTypeEnum["SAVED_ROWS"] = "SAVED_ROWS";
41
- })(MetaTypeEnum = exports.MetaTypeEnum || (exports.MetaTypeEnum = {}));
42
- var MetaStateEnum;
43
- (function (MetaStateEnum) {
44
- MetaStateEnum["DOWNLOADED"] = "DOWNLOADED";
45
- MetaStateEnum["SAVED"] = "SAVED";
46
- })(MetaStateEnum = exports.MetaStateEnum || (exports.MetaStateEnum = {}));
47
- var MetaDatasetInfoKeyEnum;
48
- (function (MetaDatasetInfoKeyEnum) {
49
- MetaDatasetInfoKeyEnum["LAST_MODIFIED"] = "last_modified";
50
- MetaDatasetInfoKeyEnum["FAILED"] = "failed";
51
- MetaDatasetInfoKeyEnum["DEPLOYED"] = "deployed";
52
- MetaDatasetInfoKeyEnum["NUMBER_OF_RETRIES"] = "number_of_retries";
53
- })(MetaDatasetInfoKeyEnum = exports.MetaDatasetInfoKeyEnum || (exports.MetaDatasetInfoKeyEnum = {}));
54
- class RopidGTFSMetadataModel extends models_1.PostgresModel {
35
+ class RopidGTFSMetadataModel extends shared_1.RopidMetadataModel {
55
36
  constructor() {
56
- super(ropid_gtfs_1.RopidGTFS.metadata.name + "Model", {
57
- outputSequelizeAttributes: ropid_gtfs_1.RopidGTFS.metadata.outputSequelizeAttributes,
58
- pgTableName: ropid_gtfs_1.RopidGTFS.metadata.pgTableName,
59
- pgSchema: ropid_gtfs_1.RopidGTFS.pgSchema,
60
- savingType: "insertOnly",
61
- }, new golemio_validator_1.Validator(ropid_gtfs_1.RopidGTFS.metadata.name + "ModelValidator", ropid_gtfs_1.RopidGTFS.metadata.outputMongooseSchemaObject));
62
- this.getLastModified = (dataset) => __awaiter(this, void 0, void 0, function* () {
63
- try {
64
- const lastMod = yield this.sequelizeModel.findOne({
65
- order: [["version", "DESC"]],
66
- where: {
67
- dataset,
68
- key: MetaDatasetInfoKeyEnum.LAST_MODIFIED,
69
- type: MetaTypeEnum.DATASET_INFO,
70
- },
71
- });
72
- return lastMod
73
- ? {
74
- lastModified: lastMod.dataValues ? lastMod.dataValues.value : null,
75
- version: lastMod.dataValues ? parseInt(lastMod.dataValues.version, 10) : 1,
76
- }
77
- : {
78
- lastModified: null,
79
- version: 0,
80
- };
81
- }
82
- catch (err) {
83
- helpers_1.log.warn(err);
84
- return {
85
- lastModified: null,
86
- version: 0,
87
- };
88
- }
89
- });
90
- this.checkSavedRows = (dataset, version) => __awaiter(this, void 0, void 0, function* () {
91
- const meta = yield this.getTotalFromMeta(dataset, version);
92
- const tables = yield this.getTotalFromTables(dataset, version);
93
- if (meta.totalRows !== tables.totalRows || meta.numOfTables !== tables.numOfTables) {
94
- throw new golemio_errors_1.CustomError(this.name + ": checkSavedRows() failed.", true);
95
- }
96
- });
37
+ super(ropid_gtfs_1.RopidGTFS);
97
38
  this.checkSavedTmpTables = (dataset, version) => __awaiter(this, void 0, void 0, function* () {
98
39
  const tables = yield this.sequelizeModel.findAll({
99
40
  attributes: [["key", "tn"]],
100
41
  where: {
101
42
  dataset,
102
- type: MetaTypeEnum.STATE,
103
- value: MetaStateEnum.SAVED,
43
+ type: shared_1.MetaTypeEnum.STATE,
44
+ value: shared_1.MetaStateEnum.SAVED,
104
45
  version,
105
46
  },
106
47
  });
@@ -127,8 +68,8 @@ class RopidGTFSMetadataModel extends models_1.PostgresModel {
127
68
  [sequelize_1.default.Op.or]: datasets.map((item) => ({
128
69
  dataset: item.dataset,
129
70
  version: item.version,
130
- type: MetaTypeEnum.STATE,
131
- value: { [sequelize_1.default.Op.ne]: MetaStateEnum.SAVED },
71
+ type: shared_1.MetaTypeEnum.STATE,
72
+ value: { [sequelize_1.default.Op.ne]: shared_1.MetaStateEnum.SAVED },
132
73
  })),
133
74
  },
134
75
  });
@@ -138,95 +79,14 @@ class RopidGTFSMetadataModel extends models_1.PostgresModel {
138
79
  const alreadyDeployed = yield this.sequelizeModel.count({
139
80
  where: {
140
81
  dataset,
141
- key: MetaDatasetInfoKeyEnum.DEPLOYED,
142
- type: MetaTypeEnum.DATASET_INFO,
82
+ key: shared_1.MetaDatasetInfoKeyEnum.DEPLOYED,
83
+ type: shared_1.MetaTypeEnum.DATASET_INFO,
143
84
  value: "true",
144
85
  version,
145
86
  },
146
87
  });
147
88
  return alreadyDeployed !== 0;
148
89
  });
149
- this.replaceDeparturePresetTables = (version) => __awaiter(this, void 0, void 0, function* () {
150
- const connection = connectors_1.PostgresConnector.getConnection();
151
- const t = yield connection.transaction();
152
- try {
153
- const tables = yield this.sequelizeModel.findAll({
154
- attributes: [["key", "tn"]],
155
- transaction: t,
156
- where: {
157
- dataset: DatasetEnum.DEPARTURES_PRESETS,
158
- type: MetaTypeEnum.STATE,
159
- value: MetaStateEnum.SAVED,
160
- version,
161
- },
162
- });
163
- const promises = tables.map((table) => __awaiter(this, void 0, void 0, function* () {
164
- const pgTableName = ropid_gtfs_1.RopidGTFS[table.dataValues.tn].pgTableName;
165
- helpers_1.log.debug(`Replacing tables: processing table ${pgTableName}`);
166
- const tableName = ropid_gtfs_1.RopidGTFS.pgSchema + "." + pgTableName;
167
- const tmpTableName = "tmp." + pgTableName;
168
- // getting table columns and joining them into string for the INSERT SELECT command
169
- // it's because the "star" from "INSERT INTO table SELECT * FROM other_table" not working
170
- const columns = yield connection.query("SELECT column_name " +
171
- "FROM information_schema.columns " +
172
- `WHERE table_schema = '${ropid_gtfs_1.RopidGTFS.pgSchema}' ` +
173
- "AND table_name = '" +
174
- ropid_gtfs_1.RopidGTFS[table.dataValues.tn].pgTableName +
175
- "'; ", { type: sequelize_1.default.QueryTypes.SELECT, transaction: t });
176
- const columnsString = columns.map((c) => '"' + c.column_name + '"').join(", ");
177
- return connection.query("LOCK " +
178
- tableName +
179
- " IN EXCLUSIVE MODE; " +
180
- "SET lock_timeout TO '1min'; " +
181
- "TRUNCATE TABLE " +
182
- tableName +
183
- "; " +
184
- "INSERT INTO " +
185
- tableName +
186
- " (" +
187
- columnsString +
188
- ")" +
189
- " SELECT " +
190
- columnsString +
191
- " FROM " +
192
- tmpTableName +
193
- "; " +
194
- "DROP TABLE IF EXISTS " +
195
- tmpTableName +
196
- "; ", { type: sequelize_1.default.QueryTypes.RAW, transaction: t });
197
- }));
198
- yield Promise.all(promises);
199
- helpers_1.log.debug(`Replacing tables: processing finished.`);
200
- // save meta
201
- yield this.sequelizeModel.create({
202
- dataset: DatasetEnum.DEPARTURES_PRESETS,
203
- key: MetaDatasetInfoKeyEnum.DEPLOYED,
204
- type: MetaTypeEnum.DATASET_INFO,
205
- value: "true",
206
- version,
207
- }, { transaction: t });
208
- yield this.sequelizeModel.destroy({
209
- transaction: t,
210
- where: {
211
- dataset: DatasetEnum.DEPARTURES_PRESETS,
212
- version: {
213
- [sequelize_1.default.Op.and]: [
214
- // delete all versions older than ten versions back
215
- { [sequelize_1.default.Op.lt]: version - 10 },
216
- { [sequelize_1.default.Op.ne]: -1 },
217
- ],
218
- },
219
- },
220
- });
221
- yield t.commit();
222
- return true;
223
- }
224
- catch (err) {
225
- helpers_1.log.error(err);
226
- yield t.rollback();
227
- throw new golemio_errors_1.CustomError(this.name + ": replaceDeparturePresetTables() failed.", true, undefined, undefined, err);
228
- }
229
- });
230
90
  this.replaceTables = (datasetInfo) => __awaiter(this, void 0, void 0, function* () {
231
91
  const connection = connectors_1.PostgresConnector.getConnection();
232
92
  const t = yield connection.transaction();
@@ -237,8 +97,8 @@ class RopidGTFSMetadataModel extends models_1.PostgresModel {
237
97
  where: {
238
98
  [sequelize_1.default.Op.or]: datasetInfo.map((item) => ({
239
99
  dataset: item.dataset,
240
- type: MetaTypeEnum.STATE,
241
- value: MetaStateEnum.SAVED,
100
+ type: shared_1.MetaTypeEnum.STATE,
101
+ value: shared_1.MetaStateEnum.SAVED,
242
102
  version: item.version,
243
103
  })),
244
104
  },
@@ -267,8 +127,8 @@ class RopidGTFSMetadataModel extends models_1.PostgresModel {
267
127
  // save meta
268
128
  yield this.sequelizeModel.bulkCreate(datasetInfo.map((el) => ({
269
129
  dataset: el.dataset,
270
- key: MetaDatasetInfoKeyEnum.DEPLOYED,
271
- type: MetaTypeEnum.DATASET_INFO,
130
+ key: shared_1.MetaDatasetInfoKeyEnum.DEPLOYED,
131
+ type: shared_1.MetaTypeEnum.DATASET_INFO,
272
132
  value: "true",
273
133
  version: el.version,
274
134
  })), { transaction: t });
@@ -297,136 +157,29 @@ class RopidGTFSMetadataModel extends models_1.PostgresModel {
297
157
  throw new golemio_errors_1.CustomError(this.name + ": replaceTables() failed.", true, undefined, undefined, err);
298
158
  }
299
159
  });
300
- this.rollbackFailedSaving = (dataset, version) => __awaiter(this, void 0, void 0, function* () {
301
- yield this.save({
302
- dataset,
303
- key: MetaDatasetInfoKeyEnum.FAILED,
304
- type: MetaTypeEnum.DATASET_INFO,
305
- value: new Date().toISOString(),
306
- version,
307
- });
308
- const numberOfRetries = yield this.sequelizeModel.findOne({
309
- attributes: [["value", "retries"]],
310
- where: {
311
- dataset,
312
- key: MetaDatasetInfoKeyEnum.NUMBER_OF_RETRIES,
313
- type: MetaTypeEnum.DATASET_INFO,
314
- version: version - 1,
315
- },
316
- });
317
- if (!numberOfRetries) {
318
- yield this.save({
319
- dataset,
320
- key: MetaDatasetInfoKeyEnum.NUMBER_OF_RETRIES,
321
- type: MetaTypeEnum.DATASET_INFO,
322
- value: 1,
323
- version,
324
- });
325
- }
326
- else {
327
- yield this.save({
328
- dataset,
329
- key: MetaDatasetInfoKeyEnum.NUMBER_OF_RETRIES,
330
- type: MetaTypeEnum.DATASET_INFO,
331
- value: +numberOfRetries.dataValues.retries + 1,
332
- version,
333
- });
334
- }
335
- });
336
160
  this.updateState = (dataset, name, state, version) => __awaiter(this, void 0, void 0, function* () {
337
161
  return this.sequelizeModel.update({
338
162
  dataset,
339
163
  key: name,
340
- type: MetaTypeEnum.STATE,
164
+ type: shared_1.MetaTypeEnum.STATE,
341
165
  value: state,
342
166
  version,
343
167
  }, {
344
168
  where: {
345
169
  dataset,
346
170
  key: name,
347
- type: MetaTypeEnum.STATE,
171
+ type: shared_1.MetaTypeEnum.STATE,
348
172
  version,
349
173
  },
350
174
  });
351
175
  });
352
- this.updateSavedRows = (dataset, name, count, version) => __awaiter(this, void 0, void 0, function* () {
353
- const connection = connectors_1.PostgresConnector.getConnection();
354
- const result = yield connection.query("SELECT SUM(count_rows(table_schema, table_name)) as total " +
355
- "FROM information_schema.tables " +
356
- "WHERE " +
357
- "table_schema NOT IN ('pg_catalog', 'information_schema') " +
358
- "AND table_type = 'BASE TABLE' " +
359
- "AND table_name = '" +
360
- ropid_gtfs_1.RopidGTFS[name].pgTableName +
361
- "' " +
362
- "AND table_schema = 'tmp'; ", { type: sequelize_1.default.QueryTypes.SELECT });
363
- const metaRow = yield this.sequelizeModel.findOne({
364
- where: {
365
- dataset,
366
- key: name,
367
- type: MetaTypeEnum.SAVED_ROWS,
368
- version,
369
- },
370
- });
371
- if (!metaRow) {
372
- yield this.save({
373
- dataset,
374
- key: name,
375
- type: MetaTypeEnum.SAVED_ROWS,
376
- value: result[0].total,
377
- version,
378
- });
379
- }
380
- else {
381
- yield this.sequelizeModel.update({
382
- dataset,
383
- key: name,
384
- type: MetaTypeEnum.SAVED_ROWS,
385
- value: result[0].total,
386
- version,
387
- }, {
388
- where: {
389
- dataset,
390
- key: name,
391
- type: MetaTypeEnum.SAVED_ROWS,
392
- version,
393
- },
394
- });
395
- }
396
- const total = yield this.sequelizeModel.findOne({
397
- where: {
398
- dataset,
399
- key: name,
400
- type: MetaTypeEnum.TABLE_TOTAL_COUNT,
401
- version,
402
- },
403
- });
404
- if (total &&
405
- total.dataValues &&
406
- parseInt(total.dataValues.value, 10) === parseInt(result[0].total, 10)) {
407
- yield this.sequelizeModel.update({
408
- dataset,
409
- key: name,
410
- type: MetaTypeEnum.STATE,
411
- value: MetaStateEnum.SAVED,
412
- version,
413
- }, {
414
- where: {
415
- dataset,
416
- key: name,
417
- type: MetaTypeEnum.STATE,
418
- version,
419
- },
420
- });
421
- }
422
- });
423
176
  this.getNumberOfDownloadRetries = (dataset, version) => __awaiter(this, void 0, void 0, function* () {
424
177
  const numberOfRetries = yield this.sequelizeModel.findOne({
425
178
  attributes: [["value", "retries"]],
426
179
  where: {
427
180
  dataset,
428
- key: MetaDatasetInfoKeyEnum.NUMBER_OF_RETRIES,
429
- type: MetaTypeEnum.DATASET_INFO,
181
+ key: shared_1.MetaDatasetInfoKeyEnum.NUMBER_OF_RETRIES,
182
+ type: shared_1.MetaTypeEnum.DATASET_INFO,
430
183
  version: version - 1,
431
184
  },
432
185
  });
@@ -438,65 +191,12 @@ class RopidGTFSMetadataModel extends models_1.PostgresModel {
438
191
  this.replacePrecomputedTmpTables = (t) => __awaiter(this, void 0, void 0, function* () {
439
192
  yield this.ropidGTFSServicesFirst14daysModel.replaceByTmp(t);
440
193
  yield this.ropidGTFSMinMaxSequencesModel.replaceByTmp(t);
194
+ yield this.ropidGTFSScheduledTripsModel.replaceByTmp(t);
441
195
  yield this.ropidGTFSDeparturesModel.replaceByTmp(t);
442
196
  });
443
- this.getTotalFromMeta = (dataset, version) => __awaiter(this, void 0, void 0, function* () {
444
- const tables = yield this.sequelizeModel.findAll({
445
- attributes: [["key", "tn"]],
446
- where: {
447
- dataset,
448
- type: MetaTypeEnum.TABLE_TOTAL_COUNT,
449
- version,
450
- },
451
- });
452
- const result = yield this.sequelizeModel.findAll({
453
- attributes: [[sequelize_1.default.fn("SUM", sequelize_1.default.cast(sequelize_1.default.col("value"), "INTEGER")), "total"]],
454
- where: {
455
- dataset,
456
- type: MetaTypeEnum.TABLE_TOTAL_COUNT,
457
- version,
458
- },
459
- });
460
- const res = {
461
- numOfTables: tables.length,
462
- totalRows: result[0].dataValues.total,
463
- };
464
- helpers_1.log.debug(this.name + " Total from metadata: " + JSON.stringify(res));
465
- return res;
466
- });
467
- this.getTotalFromTables = (dataset, version) => __awaiter(this, void 0, void 0, function* () {
468
- const connection = connectors_1.PostgresConnector.getConnection();
469
- const tables = yield this.sequelizeModel.findAll({
470
- attributes: [["key", "tn"]],
471
- where: {
472
- dataset,
473
- type: MetaTypeEnum.TABLE_TOTAL_COUNT,
474
- version,
475
- },
476
- });
477
- const tablesArray = [];
478
- tables.map((table) => {
479
- tablesArray.push("'" + ropid_gtfs_1.RopidGTFS[table.dataValues.tn].pgTableName + "'");
480
- });
481
- // TODO zbavit se raw query
482
- const result = yield connection.query("SELECT SUM(count_rows(table_schema, table_name)) as total " +
483
- "FROM information_schema.tables " +
484
- "WHERE " +
485
- "table_schema NOT IN ('pg_catalog', 'information_schema') " +
486
- "AND table_type = 'BASE TABLE' " +
487
- "AND table_name in (" +
488
- tablesArray.join(",") +
489
- ") " +
490
- "AND table_schema = 'tmp'; ", { type: sequelize_1.default.QueryTypes.SELECT });
491
- const res = {
492
- numOfTables: tables.length,
493
- totalRows: result[0].total,
494
- };
495
- helpers_1.log.debug(this.name + " Total from tables: " + JSON.stringify(res));
496
- return res;
497
- });
498
197
  this.ropidGTFSDeparturesModel = new RopidGTFSDeparturesModel_1.RopidGTFSDeparturesModel();
499
198
  this.ropidGTFSMinMaxSequencesModel = new RopidGTFSMinMaxSequencesModel_1.RopidGTFSMinMaxSequencesModel();
199
+ this.ropidGTFSScheduledTripsModel = new RopidGTFSScheduledTripsModel_1.RopidGTFSScheduledTripsModel();
500
200
  this.ropidGTFSServicesFirst14daysModel = new RopidGTFSServicesFirst14daysModel_1.RopidGTFSServicesFirst14daysModel();
501
201
  }
502
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RopidGTFSMetadataModel.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGTFSMetadataModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RopidGTFSMetadataModel.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGTFSMetadataModel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
2
+ import Sequelize, { Transaction, FindOptions } from "@golemio/core/dist/shared/sequelize";
3
+ import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine/models";
4
+ import { IGtfsRunTripCache } from "../vehicle-positions/VehiclePositionsRunsModel";
5
+ export declare class RopidGTFSScheduledTripsModel extends PostgresModel implements IModel {
6
+ /** Model name */
7
+ name: string;
8
+ /** The Sequelize Model */
9
+ sequelizeModel: Sequelize.ModelCtor<any>;
10
+ /** The Sequelize Model for temporary table */
11
+ protected tmpSequelizeModel: Sequelize.ModelCtor<any> | null;
12
+ /** Validation helper */
13
+ protected validator: JSONSchemaValidator;
14
+ /** Type/Strategy of saving the data */
15
+ protected savingType: "insertOnly" | "insertOrUpdate";
16
+ constructor();
17
+ findAll: (options: FindOptions) => Promise<IGtfsRunTripCache[]>;
18
+ createAndPopulateFromTmp: () => Promise<void>;
19
+ replaceByTmp: (transaction: Transaction) => Promise<void>;
20
+ createIndexes: () => Promise<void>;
21
+ }
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RopidGTFSScheduledTripsModel = void 0;
13
+ const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
14
+ const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
15
+ const models_1 = require("@golemio/core/dist/integration-engine/models");
16
+ const ropid_gtfs_1 = require("../../schema-definitions/ropid-gtfs");
17
+ const utils_1 = require("./utils");
18
+ class RopidGTFSScheduledTripsModel extends models_1.PostgresModel {
19
+ constructor() {
20
+ super(ropid_gtfs_1.RopidGTFS.scheduledTrips.name + "Model", {
21
+ outputSequelizeAttributes: ropid_gtfs_1.RopidGTFS.scheduledTrips.outputSequelizeAttributes,
22
+ pgTableName: ropid_gtfs_1.RopidGTFS.scheduledTrips.pgTableName,
23
+ pgSchema: ropid_gtfs_1.RopidGTFS.pgSchema,
24
+ savingType: "insertOnly",
25
+ attributesToRemove: ["id", "created_at", "updated_at"],
26
+ }, new golemio_validator_1.JSONSchemaValidator(ropid_gtfs_1.RopidGTFS.scheduledTrips.name + "ModelValidator", ropid_gtfs_1.RopidGTFS.scheduledTrips.outputJsonSchema));
27
+ this.findAll = (options) => {
28
+ return this.sequelizeModel.findAll(Object.assign({ raw: true }, options));
29
+ };
30
+ this.createAndPopulateFromTmp = () => __awaiter(this, void 0, void 0, function* () {
31
+ /* eslint-disable max-len */
32
+ const sql = `
33
+ SELECT t0.*,
34
+ CASE
35
+ WHEN EXTRACT(HOUR FROM t0.min_stop_time) > 23
36
+ THEN make_timestamptz(
37
+ DATE_PART('year', t0.date + INTERVAL '1 day')::INT,
38
+ DATE_PART('month', t0.date + INTERVAL '1 day')::INT,
39
+ DATE_PART('day', t0.date + INTERVAL '1 day')::INT,
40
+ DATE_PART('hour', t0.min_stop_time)::INT - 24,
41
+ DATE_PART('minute', t0.min_stop_time)::INT,
42
+ DATE_PART('second', t0.min_stop_time),
43
+ 'Europe/Prague'
44
+ )
45
+ ELSE make_timestamptz(
46
+ DATE_PART('year', t0.date)::INT,
47
+ DATE_PART('month', t0.date)::INT,
48
+ DATE_PART('day', t0.date)::INT,
49
+ DATE_PART('hour', t0.min_stop_time)::INT,
50
+ DATE_PART('minute', t0.min_stop_time)::INT,
51
+ DATE_PART('second', t0.min_stop_time),
52
+ 'Europe/Prague'
53
+ )
54
+ END as start_timestamp,
55
+ CASE
56
+ WHEN EXTRACT(HOUR FROM t0.max_stop_time) > 23
57
+ THEN make_timestamptz(
58
+ DATE_PART('year', t0.date + INTERVAL '1 day')::INT,
59
+ DATE_PART('month', t0.date + INTERVAL '1 day')::INT,
60
+ DATE_PART('day', t0.date + INTERVAL '1 day')::INT,
61
+ DATE_PART('hour', t0.max_stop_time)::INT - 24,
62
+ DATE_PART('minute', t0.max_stop_time)::INT,
63
+ DATE_PART('second', t0.max_stop_time),
64
+ 'Europe/Prague'
65
+ )
66
+ ELSE make_timestamptz(
67
+ DATE_PART('year', t0.date)::INT,
68
+ DATE_PART('month', t0.date)::INT,
69
+ DATE_PART('day', t0.date)::INT,
70
+ DATE_PART('hour', t0.max_stop_time)::INT,
71
+ DATE_PART('minute', t0.max_stop_time)::INT,
72
+ DATE_PART('second', t0.max_stop_time),
73
+ 'Europe/Prague'
74
+ )
75
+ END as end_timestamp
76
+ FROM (
77
+ SELECT
78
+ t1.trip_id,
79
+ t1.service_id,
80
+ t3.date,
81
+ t7.route_id,
82
+ t7.route_type,
83
+ t7.route_short_name,
84
+ t7.is_regional,
85
+ t7.is_substitute_transport,
86
+ t7.is_night,
87
+ t8.trip_headsign,
88
+ t8.trip_short_name,
89
+ t8.block_id,
90
+ t8.exceptional,
91
+ LEAST(t5.arrival_time::INTERVAL, t5.departure_time::INTERVAL) AS min_stop_time,
92
+ GREATEST(t6.arrival_time::INTERVAL, t6.departure_time::INTERVAL) AS max_stop_time
93
+ FROM "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_run_numbers_tmp t1
94
+ LEFT JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_services_first14days_tmp t3 ON t1.service_id = t3.service_id
95
+ LEFT JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_trips_minmaxsequences_tmp t4 ON t1.trip_id = t4.trip_id
96
+ LEFT OUTER JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_stop_times_tmp t5 ON t1.trip_id = t5.trip_id AND t5.stop_sequence = t4.min_stop_sequence
97
+ LEFT OUTER JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_stop_times_tmp t6 ON t1.trip_id = t6.trip_id AND t6.stop_sequence = t4.max_stop_sequence
98
+ LEFT JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_trips_tmp t8 ON t1.trip_id = t8.trip_id
99
+ LEFT JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_routes_tmp t7 ON t8.route_id = t7.route_id
100
+ ) t0;
101
+ `;
102
+ /* eslint-enable max-len */
103
+ try {
104
+ const tmpTable = ropid_gtfs_1.RopidGTFS.scheduledTrips.pgTableName + "_tmp";
105
+ yield this.sequelizeModel.sequelize.query(`DROP TABLE IF EXISTS "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tmpTable};
106
+ CREATE TABLE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tmpTable} (
107
+ LIKE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${ropid_gtfs_1.RopidGTFS.scheduledTrips.pgTableName}
108
+ );
109
+ INSERT INTO "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tmpTable} ${sql};`);
110
+ }
111
+ catch (err) {
112
+ helpers_1.log.error(err);
113
+ throw err;
114
+ }
115
+ });
116
+ this.replaceByTmp = (transaction) => __awaiter(this, void 0, void 0, function* () {
117
+ try {
118
+ const pgTableName = ropid_gtfs_1.RopidGTFS.scheduledTrips.pgTableName;
119
+ const tableNameActual = pgTableName + "_actual";
120
+ const tableNameTmp = pgTableName + "_tmp";
121
+ const indexQuery = (0, utils_1.buildAlterIndexQuery)(ropid_gtfs_1.RopidGTFS.scheduledTrips.modelIndexOptions);
122
+ yield this.sequelizeModel.sequelize.query(`
123
+ LOCK "${ropid_gtfs_1.RopidGTFS.pgSchema}".${pgTableName} IN EXCLUSIVE MODE;
124
+ ALTER TABLE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tableNameActual} NO INHERIT "${ropid_gtfs_1.RopidGTFS.pgSchema}".${pgTableName};
125
+ DROP TABLE IF EXISTS "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tableNameActual};
126
+ ${indexQuery}
127
+ ALTER TABLE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tableNameTmp} RENAME TO ${tableNameActual};
128
+ ALTER TABLE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tableNameActual} INHERIT "${ropid_gtfs_1.RopidGTFS.pgSchema}".${pgTableName};
129
+ `, { transaction });
130
+ }
131
+ catch (err) {
132
+ helpers_1.log.error(err);
133
+ throw err;
134
+ }
135
+ });
136
+ this.createIndexes = () => __awaiter(this, void 0, void 0, function* () {
137
+ try {
138
+ const indexes = ropid_gtfs_1.RopidGTFS.scheduledTrips.modelIndexOptions;
139
+ const indexQuery = (0, utils_1.buildCreateIndexQuery)(ropid_gtfs_1.RopidGTFS.scheduledTrips.pgTableName, indexes);
140
+ yield this.sequelizeModel.sequelize.query(indexQuery);
141
+ }
142
+ catch (err) {
143
+ helpers_1.log.error(err);
144
+ throw err;
145
+ }
146
+ });
147
+ }
148
+ }
149
+ exports.RopidGTFSScheduledTripsModel = RopidGTFSScheduledTripsModel;
150
+ //# sourceMappingURL=RopidGTFSScheduledTripsModel.js.map