@golemio/pid 5.10.0 → 5.10.1-dev.2503887487

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 (51) hide show
  1. package/db/migrations/postgresql/20260504000000-add-off-track-to-future-stop-times.js +53 -0
  2. package/db/migrations/postgresql/sqls/20260504000000-add-off-track-to-future-stop-times-down.sql +92 -0
  3. package/db/migrations/postgresql/sqls/20260504000000-add-off-track-to-future-stop-times-up.sql +97 -0
  4. package/dist/integration-engine/jis/repositories/JISInfotextsPresetsRepository.d.ts +10 -1
  5. package/dist/integration-engine/jis/repositories/JISInfotextsPresetsRepository.js +16 -6
  6. package/dist/integration-engine/jis/repositories/JISInfotextsPresetsRepository.js.map +1 -1
  7. package/dist/integration-engine/jis/repositories/JISInfotextsRepository.d.ts +3 -1
  8. package/dist/integration-engine/jis/repositories/JISInfotextsRepository.js +15 -2
  9. package/dist/integration-engine/jis/repositories/JISInfotextsRepository.js.map +1 -1
  10. package/dist/integration-engine/jis/repositories/JISInfotextsRopidGTFSStopsRepository.d.ts +6 -15
  11. package/dist/integration-engine/jis/repositories/JISInfotextsRopidGTFSStopsRepository.js +12 -20
  12. package/dist/integration-engine/jis/repositories/JISInfotextsRopidGTFSStopsRepository.js.map +1 -1
  13. package/dist/integration-engine/jis/services/JISInfotextsDataService.d.ts +2 -5
  14. package/dist/integration-engine/jis/services/JISInfotextsDataService.js +2 -5
  15. package/dist/integration-engine/jis/services/JISInfotextsDataService.js.map +1 -1
  16. package/dist/integration-engine/jis/transformations/JISInfotextsTransformation.js +2 -2
  17. package/dist/integration-engine/jis/transformations/JISInfotextsTransformation.js.map +1 -1
  18. package/dist/integration-engine/ropid-gtfs/facade/DeparturePresetsFacade.d.ts +1 -0
  19. package/dist/integration-engine/ropid-gtfs/facade/DeparturePresetsFacade.js +5 -2
  20. package/dist/integration-engine/ropid-gtfs/facade/DeparturePresetsFacade.js.map +1 -1
  21. package/dist/integration-engine/ropid-gtfs/ioc/Di.js +7 -5
  22. package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
  23. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +1 -0
  24. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +1 -0
  25. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
  26. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js +1 -0
  27. package/dist/integration-engine/ropid-gtfs/workers/timetables/TimetableWorker.js.map +1 -1
  28. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js +1 -0
  29. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/CheckSavedRowsAndReplaceTablesTask.js.map +1 -1
  30. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RemapPresetsToGtfsStopsTask.d.ts +9 -0
  31. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RemapPresetsToGtfsStopsTask.js +38 -0
  32. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/RemapPresetsToGtfsStopsTask.js.map +1 -0
  33. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js +1 -0
  34. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js.map +1 -1
  35. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/BasePositionsManager.js +1 -1
  36. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/BasePositionsManager.js.map +1 -1
  37. package/dist/schema-definitions/jis/datasources/JISInfotextsJsonSchema.js +2 -2
  38. package/dist/schema-definitions/jis/datasources/JISInfotextsJsonSchema.js.map +1 -1
  39. package/dist/schema-definitions/jis/datasources/interfaces/IJISInfotext.d.ts +1 -3
  40. package/dist/schema-definitions/jis/datasources/interfaces/IJISInfotextPreset.d.ts +3 -0
  41. package/dist/schema-definitions/jis/datasources/interfaces/IJISInfotextPreset.js +3 -0
  42. package/dist/schema-definitions/jis/datasources/interfaces/IJISInfotextPreset.js.map +1 -0
  43. package/dist/schema-definitions/jis/datasources/interfaces/index.d.ts +1 -0
  44. package/dist/schema-definitions/jis/datasources/interfaces/index.js +1 -0
  45. package/dist/schema-definitions/jis/datasources/interfaces/index.js.map +1 -1
  46. package/dist/schema-definitions/jis/models/JISInfotextsModel.d.ts +2 -0
  47. package/dist/schema-definitions/jis/models/JISInfotextsModel.js.map +1 -1
  48. package/docs/asyncapi.yaml +16 -5
  49. package/docs/implementation_documentation.md +21 -0
  50. package/docs/openapi-input.yaml +14 -3
  51. package/package.json +6 -6
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var dbm;
4
+ var type;
5
+ var seed;
6
+ var fs = require('fs');
7
+ var path = require('path');
8
+ var Promise;
9
+
10
+ /**
11
+ * We receive the dbmigrate dependency from dbmigrate initially.
12
+ * This enables us to not have to rely on NODE_PATH.
13
+ */
14
+ exports.setup = function(options, seedLink) {
15
+ dbm = options.dbmigrate;
16
+ type = dbm.dataType;
17
+ seed = seedLink;
18
+ Promise = options.Promise;
19
+ };
20
+
21
+ exports.up = function(db) {
22
+ var filePath = path.join(__dirname, 'sqls', '20260504000000-add-off-track-to-future-stop-times-up.sql');
23
+ return new Promise( function( resolve, reject ) {
24
+ fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
25
+ if (err) return reject(err);
26
+ console.log('received data: ' + data);
27
+
28
+ resolve(data);
29
+ });
30
+ })
31
+ .then(function(data) {
32
+ return db.runSql(data);
33
+ });
34
+ };
35
+
36
+ exports.down = function(db) {
37
+ var filePath = path.join(__dirname, 'sqls', '20260504000000-add-off-track-to-future-stop-times-down.sql');
38
+ return new Promise( function( resolve, reject ) {
39
+ fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
40
+ if (err) return reject(err);
41
+ console.log('received data: ' + data);
42
+
43
+ resolve(data);
44
+ });
45
+ })
46
+ .then(function(data) {
47
+ return db.runSql(data);
48
+ });
49
+ };
50
+
51
+ exports._meta = {
52
+ "version": 1
53
+ };
@@ -0,0 +1,92 @@
1
+ CREATE OR REPLACE VIEW v_public_vehiclepositions_future_stop_times AS
2
+ WITH RECURSIVE stop_times AS (
3
+ SELECT
4
+ rst.trip_id,
5
+ vt.id AS trips_id,
6
+ vt.provider_source_type,
7
+ coalesce(vp.delay, 0) AS delay,
8
+ coalesce(vp.last_stop_sequence, 1) AS initial_stop_sequence,
9
+ vp.state_position,
10
+ rst.stop_id,
11
+ rst.stop_sequence,
12
+ rst.computed_dwell_time_seconds,
13
+ rst.arrival_time,
14
+ rst.departure_time,
15
+ CASE WHEN vp.last_stop_sequence IS NULL THEN
16
+ coalesce(vp.delay, 0)
17
+ ELSE
18
+ coalesce(vp.delay_stop_arrival, 0)
19
+ END AS arrival_delay_seconds,
20
+ CASE WHEN vp.last_stop_sequence IS NULL THEN
21
+ predict_delay_seconds(vp.delay, rst.computed_dwell_time_seconds, vt.provider_source_type)
22
+ WHEN vp.state_position::text = 'at_stop'::text THEN
23
+ CASE WHEN vt.provider_source_type::text = '1'::text THEN
24
+ greatest(0, vp.delay)
25
+ ELSE
26
+ vp.delay
27
+ END
28
+ ELSE
29
+ vp.delay_stop_departure
30
+ END AS departure_delay_seconds
31
+ FROM
32
+ ropidgtfs_stop_times rst
33
+ JOIN vehiclepositions_trips vt ON vt.gtfs_trip_id::text = rst.trip_id::text
34
+ JOIN vehiclepositions_positions vp ON vp.id = vt.last_position_id
35
+ AND (vp.valid_to IS NULL
36
+ OR vp.valid_to >= now())
37
+ AND (vp.state_position::text = ANY (ARRAY['on_track'::character varying::text,
38
+ 'at_stop'::character varying::text,
39
+ 'before_track'::character varying::text,
40
+ 'before_track_delayed'::character varying::text]))
41
+ WHERE
42
+ vt.gtfs_trip_id IS NOT NULL
43
+ AND rst.stop_sequence = coalesce(vp.last_stop_sequence, 1)
44
+ UNION ALL
45
+ SELECT
46
+ rst.trip_id,
47
+ previous_row.trips_id,
48
+ previous_row.provider_source_type,
49
+ previous_row.delay,
50
+ previous_row.initial_stop_sequence,
51
+ previous_row.state_position,
52
+ rst.stop_id,
53
+ rst.stop_sequence,
54
+ rst.computed_dwell_time_seconds,
55
+ rst.arrival_time,
56
+ rst.departure_time,
57
+ CASE WHEN (rst.stop_sequence - previous_row.initial_stop_sequence) = 1
58
+ AND previous_row.state_position::text <> 'at_stop'::text THEN
59
+ CASE WHEN (rst.arrival_time::interval +(interval '1 second' * previous_row.delay) < previous_row.departure_time::interval +(interval '1 second' *(previous_row.departure_delay_seconds))) THEN
60
+ NULL
61
+ ELSE
62
+ previous_row.delay
63
+ END
64
+ ELSE
65
+ previous_row.departure_delay_seconds
66
+ END AS arrival_delay_seconds,
67
+ predict_delay_seconds(
68
+ CASE WHEN (rst.stop_sequence - previous_row.initial_stop_sequence) = 1
69
+ AND previous_row.state_position::text <> 'at_stop'::text THEN
70
+ previous_row.delay
71
+ ELSE
72
+ previous_row.departure_delay_seconds
73
+ END, rst.computed_dwell_time_seconds, previous_row.provider_source_type) AS departure_delay_seconds
74
+ FROM
75
+ stop_times previous_row
76
+ JOIN ropidgtfs_stop_times rst ON rst.trip_id::text = previous_row.trip_id::text
77
+ AND rst.stop_sequence =(previous_row.stop_sequence + 1))
78
+ SELECT
79
+ stop_times.trips_id AS rt_trip_id,
80
+ stop_times.stop_sequence,
81
+ stop_times.arrival_delay_seconds AS stop_arr_delay,
82
+ CASE WHEN (stop_times.arrival_time::interval +(interval '1 second' * coalesce(stop_times.arrival_delay_seconds, 0))) >(stop_times.departure_time::interval +(interval '1 second' * coalesce(stop_times.departure_delay_seconds, 0))) THEN
83
+ NULL
84
+ ELSE
85
+ stop_times.departure_delay_seconds
86
+ END AS stop_dep_delay,
87
+ stop_times.stop_id
88
+ FROM
89
+ stop_times
90
+ ORDER BY
91
+ stop_times.trip_id,
92
+ stop_times.stop_sequence;
@@ -0,0 +1,97 @@
1
+ CREATE OR REPLACE VIEW v_public_vehiclepositions_future_stop_times AS
2
+ WITH RECURSIVE stop_times AS (
3
+ SELECT
4
+ rst.trip_id,
5
+ vt.id AS trips_id,
6
+ vt.provider_source_type,
7
+ coalesce(vp.delay, 0) AS delay,
8
+ coalesce(vp.last_stop_sequence, 1) AS initial_stop_sequence,
9
+ vp.state_position,
10
+ rst.stop_id,
11
+ rst.stop_sequence,
12
+ rst.computed_dwell_time_seconds,
13
+ rst.arrival_time,
14
+ rst.departure_time,
15
+ CASE WHEN vp.state_position::text = 'off_track'::text THEN
16
+ coalesce(vp.delay, 0)
17
+ WHEN vp.last_stop_sequence IS NULL THEN
18
+ coalesce(vp.delay, 0)
19
+ ELSE
20
+ coalesce(vp.delay_stop_arrival, 0)
21
+ END AS arrival_delay_seconds,
22
+ CASE WHEN vp.state_position::text = 'off_track'::text THEN
23
+ predict_delay_seconds(vp.delay, rst.computed_dwell_time_seconds, vt.provider_source_type)
24
+ WHEN vp.last_stop_sequence IS NULL THEN
25
+ predict_delay_seconds(vp.delay, rst.computed_dwell_time_seconds, vt.provider_source_type)
26
+ WHEN vp.state_position::text = 'at_stop'::text THEN
27
+ CASE WHEN vt.provider_source_type::text = '1'::text THEN
28
+ greatest(0, vp.delay)
29
+ ELSE
30
+ vp.delay
31
+ END
32
+ ELSE
33
+ vp.delay_stop_departure
34
+ END AS departure_delay_seconds
35
+ FROM
36
+ ropidgtfs_stop_times rst
37
+ JOIN vehiclepositions_trips vt ON vt.gtfs_trip_id::text = rst.trip_id::text
38
+ JOIN vehiclepositions_positions vp ON vp.id = vt.last_position_id
39
+ AND (vp.valid_to IS NULL
40
+ OR vp.valid_to >= now())
41
+ AND (vp.state_position::text = ANY (ARRAY['on_track'::character varying::text,
42
+ 'at_stop'::character varying::text,
43
+ 'before_track'::character varying::text,
44
+ 'before_track_delayed'::character varying::text,
45
+ 'off_track'::character varying::text]))
46
+ WHERE
47
+ vt.gtfs_trip_id IS NOT NULL
48
+ AND rst.stop_sequence = coalesce(vp.last_stop_sequence, 1)
49
+ UNION ALL
50
+ SELECT
51
+ rst.trip_id,
52
+ previous_row.trips_id,
53
+ previous_row.provider_source_type,
54
+ previous_row.delay,
55
+ previous_row.initial_stop_sequence,
56
+ previous_row.state_position,
57
+ rst.stop_id,
58
+ rst.stop_sequence,
59
+ rst.computed_dwell_time_seconds,
60
+ rst.arrival_time,
61
+ rst.departure_time,
62
+ CASE WHEN (rst.stop_sequence - previous_row.initial_stop_sequence) = 1
63
+ AND previous_row.state_position::text <> 'at_stop'::text THEN
64
+ CASE WHEN (rst.arrival_time::interval +(interval '1 second' * previous_row.delay) < previous_row.departure_time::interval +(interval '1 second' *(previous_row.departure_delay_seconds))) THEN
65
+ NULL
66
+ ELSE
67
+ previous_row.delay
68
+ END
69
+ ELSE
70
+ previous_row.departure_delay_seconds
71
+ END AS arrival_delay_seconds,
72
+ predict_delay_seconds(
73
+ CASE WHEN (rst.stop_sequence - previous_row.initial_stop_sequence) = 1
74
+ AND previous_row.state_position::text <> 'at_stop'::text THEN
75
+ previous_row.delay
76
+ ELSE
77
+ previous_row.departure_delay_seconds
78
+ END, rst.computed_dwell_time_seconds, previous_row.provider_source_type) AS departure_delay_seconds
79
+ FROM
80
+ stop_times previous_row
81
+ JOIN ropidgtfs_stop_times rst ON rst.trip_id::text = previous_row.trip_id::text
82
+ AND rst.stop_sequence =(previous_row.stop_sequence + 1))
83
+ SELECT
84
+ stop_times.trips_id AS rt_trip_id,
85
+ stop_times.stop_sequence,
86
+ stop_times.arrival_delay_seconds AS stop_arr_delay,
87
+ CASE WHEN (stop_times.arrival_time::interval +(interval '1 second' * coalesce(stop_times.arrival_delay_seconds, 0))) >(stop_times.departure_time::interval +(interval '1 second' * coalesce(stop_times.departure_delay_seconds, 0))) THEN
88
+ NULL
89
+ ELSE
90
+ stop_times.departure_delay_seconds
91
+ END AS stop_dep_delay,
92
+ stop_times.stop_id
93
+ FROM
94
+ stop_times
95
+ ORDER BY
96
+ stop_times.trip_id,
97
+ stop_times.stop_sequence;
@@ -9,13 +9,22 @@ type RepositoryOptions = {
9
9
  transaction?: Transaction;
10
10
  };
11
11
  export declare class JISInfotextsPresetsRepository extends AbstractValidatableRepository {
12
- private logger;
13
12
  validator: JSONSchemaValidator;
14
13
  schema: string;
15
14
  tableName: string;
16
15
  private sequelizeModel;
17
16
  constructor(connector: IDatabaseConnector, logger: ILogger);
17
+ /**
18
+ * Inserts new rows or updates existing ones. On conflict, all columns except `created_at` are overwritten —
19
+ * `created_at` is intentionally preserved to track when a row was first seen, while `updated_at` advances
20
+ * each cycle so stale-record cleanup can identify entries missing from the latest feed.
21
+ */
18
22
  upsertAll(data: IJISInfotextsPresets[], options?: RepositoryOptions): ReturnType<ModelStatic<JISInfotextsPresetsModel>["bulkCreate"]>;
23
+ /**
24
+ * Removes rows that were not touched during the current refresh cycle — any row whose `updated_at`
25
+ * predates `dateTime` was absent from the latest feed and is considered stale.
26
+ * Call this after `upsertAll` with the timestamp captured at the start of the save to clean up vanished entries.
27
+ */
19
28
  deleteAllLastUpdatedBefore(dateTime: Date, options?: RepositoryOptions): Promise<number>;
20
29
  deleteAll(options?: RepositoryOptions): Promise<number>;
21
30
  private getUpdateAttributes;
@@ -17,7 +17,6 @@ const const_1 = require("../../../schema-definitions/const");
17
17
  const JISInfotextsPresetsModel_1 = require("../../../schema-definitions/jis/models/JISInfotextsPresetsModel");
18
18
  const AbstractValidatableRepository_1 = require("@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository");
19
19
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
20
- const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
21
20
  const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
22
21
  const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
23
22
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
@@ -25,7 +24,6 @@ const RepositoryUtils_1 = require("../../shared/RepositoryUtils");
25
24
  let JISInfotextsPresetsRepository = class JISInfotextsPresetsRepository extends AbstractValidatableRepository_1.AbstractValidatableRepository {
26
25
  constructor(connector, logger) {
27
26
  super(connector, logger);
28
- this.logger = logger;
29
27
  this.schema = const_1.PG_SCHEMA;
30
28
  this.tableName = JISInfotextsPresetsModel_1.JISInfotextsPresetsModel.tableName;
31
29
  this.validator = new golemio_validator_1.JSONSchemaValidator("JISInfotextsPresetsRepository", JISInfotextsPresetsModel_1.JISInfotextsPresetsModel.jsonSchema);
@@ -33,6 +31,11 @@ let JISInfotextsPresetsRepository = class JISInfotextsPresetsRepository extends
33
31
  .getConnection()
34
32
  .define(this.tableName, JISInfotextsPresetsModel_1.JISInfotextsPresetsModel.attributeModel, { schema: this.schema });
35
33
  }
34
+ /**
35
+ * Inserts new rows or updates existing ones. On conflict, all columns except `created_at` are overwritten —
36
+ * `created_at` is intentionally preserved to track when a row was first seen, while `updated_at` advances
37
+ * each cycle so stale-record cleanup can identify entries missing from the latest feed.
38
+ */
36
39
  async upsertAll(data, options) {
37
40
  try {
38
41
  return await this.sequelizeModel.bulkCreate(data, {
@@ -41,9 +44,14 @@ let JISInfotextsPresetsRepository = class JISInfotextsPresetsRepository extends
41
44
  });
42
45
  }
43
46
  catch (err) {
44
- RepositoryUtils_1.RepositoryUtils.mapSequelizeError(err, this.constructor.name, "upsertAll");
47
+ throw RepositoryUtils_1.RepositoryUtils.mapSequelizeError(err, this.constructor.name, "upsertAll");
45
48
  }
46
49
  }
50
+ /**
51
+ * Removes rows that were not touched during the current refresh cycle — any row whose `updated_at`
52
+ * predates `dateTime` was absent from the latest feed and is considered stale.
53
+ * Call this after `upsertAll` with the timestamp captured at the start of the save to clean up vanished entries.
54
+ */
47
55
  async deleteAllLastUpdatedBefore(dateTime, options) {
48
56
  try {
49
57
  return await this.sequelizeModel.destroy({
@@ -54,7 +62,7 @@ let JISInfotextsPresetsRepository = class JISInfotextsPresetsRepository extends
54
62
  });
55
63
  }
56
64
  catch (err) {
57
- throw new golemio_errors_1.GeneralError("Error in deleteAllLastUpdatedBefore", this.constructor.name, err);
65
+ throw RepositoryUtils_1.RepositoryUtils.mapSequelizeError(err, this.constructor.name, "deleteAllLastUpdatedBefore");
58
66
  }
59
67
  }
60
68
  async deleteAll(options) {
@@ -62,11 +70,13 @@ let JISInfotextsPresetsRepository = class JISInfotextsPresetsRepository extends
62
70
  return await this.sequelizeModel.destroy({ where: {}, transaction: options?.transaction });
63
71
  }
64
72
  catch (err) {
65
- throw new golemio_errors_1.GeneralError("Error in deleteAll", this.constructor.name, err);
73
+ throw RepositoryUtils_1.RepositoryUtils.mapSequelizeError(err, this.constructor.name, "deleteAll");
66
74
  }
67
75
  }
76
+ // created_at is excluded so that re-upserting an existing row doesn't overwrite
77
+ // when it was first seen — only updated_at should advance on subsequent refreshes.
68
78
  getUpdateAttributes() {
69
- return Object.keys(JISInfotextsPresetsModel_1.JISInfotextsPresetsModel.attributeModel).filter((attribute) => !["created_at"].includes(attribute));
79
+ return Object.keys(JISInfotextsPresetsModel_1.JISInfotextsPresetsModel.attributeModel).filter((attribute) => attribute !== "created_at");
70
80
  }
71
81
  };
72
82
  exports.JISInfotextsPresetsRepository = JISInfotextsPresetsRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"JISInfotextsPresetsRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/repositories/JISInfotextsPresetsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAAuC;AACvC,8GAAoF;AAIpF,8IAA2I;AAC3I,wEAAqE;AACrE,6EAAwE;AACxE,mFAAkF;AAClF,mEAAmF;AACnF,iEAAwE;AACxE,kEAA6D;AAOtD,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,6DAA6B;IAO5E,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,mDAAwB,CAAC,SAAS,CAAC;QASlD,IAAI,CAAC,SAAS,GAAG,IAAI,uCAAmB,CAAC,+BAA+B,EAAE,mDAAwB,CAAC,UAAU,CAAC,CAAC;QAC/G,IAAI,CAAC,cAAc,GAAG,SAAS;aAC1B,aAAa,EAAE;aACf,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,mDAAwB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAClG,CAAC;IAEM,KAAK,CAAC,SAAS,CAClB,IAA4B,EAC5B,OAA2B;QAE3B,IAAI,CAAC;YACD,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;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,iCAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,0BAA0B,CAAC,QAAc,EAAE,OAA2B;QAC/E,IAAI,CAAC;YACD,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;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,6BAAY,CAAC,qCAAqC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,OAA2B;QAC9C,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,6BAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;IAEO,mBAAmB;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,mDAAwB,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3H,CAAC;CACJ,CAAA;AAxDY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,qBAAU,GAAE;IASJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAA;IACnC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GATpB,6BAA6B,CAwDzC"}
1
+ {"version":3,"file":"JISInfotextsPresetsRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/repositories/JISInfotextsPresetsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAAuC;AACvC,8GAAoF;AAIpF,8IAA2I;AAC3I,wEAAqE;AACrE,mFAAkF;AAClF,mEAAmF;AACnF,iEAAwE;AACxE,kEAA6D;AAOtD,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,6DAA6B;IAO5E,YAAiD,SAA6B,EAA4B,MAAe;QACrH,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QANtB,WAAM,GAAG,iBAAS,CAAC;QACnB,cAAS,GAAG,mDAAwB,CAAC,SAAS,CAAC;QAMlD,IAAI,CAAC,SAAS,GAAG,IAAI,uCAAmB,CAAC,+BAA+B,EAAE,mDAAwB,CAAC,UAAU,CAAC,CAAC;QAC/G,IAAI,CAAC,cAAc,GAAG,SAAS;aAC1B,aAAa,EAAE;aACf,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,mDAAwB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAClG,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,SAAS,CAClB,IAA4B,EAC5B,OAA2B;QAE3B,IAAI,CAAC;YACD,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;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,iCAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,0BAA0B,CAAC,QAAc,EAAE,OAA2B;QAC/E,IAAI,CAAC;YACD,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;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,iCAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;QACtG,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,OAA2B;QAC9C,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,iCAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;IAED,gFAAgF;IAChF,mFAAmF;IAC3E,mBAAmB;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,mDAAwB,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC;IAClH,CAAC;CACJ,CAAA;AAjEY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,qBAAU,GAAE;IAQI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAA;IAAiC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAPhG,6BAA6B,CAiEzC"}
@@ -6,6 +6,7 @@ import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postg
6
6
  import { AbstractValidatableRepository } from "@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository";
7
7
  import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
8
8
  import { Transaction } from "@golemio/core/dist/shared/sequelize";
9
+ import { JISInfotextsPresetsRepository } from "./JISInfotextsPresetsRepository";
9
10
  import { JISInfotextsRopidGTFSStopsRepository } from "./JISInfotextsRopidGTFSStopsRepository";
10
11
  type RepositoryOptions = {
11
12
  transaction?: Transaction;
@@ -13,12 +14,13 @@ type RepositoryOptions = {
13
14
  export declare class JISInfotextsRepository extends AbstractValidatableRepository {
14
15
  private logger;
15
16
  private infotextStopRepository;
17
+ private infotextPresetsRepository;
16
18
  private gtfsStopRepository;
17
19
  validator: JSONSchemaValidator;
18
20
  schema: string;
19
21
  tableName: string;
20
22
  private sequelizeModel;
21
- constructor(connector: IDatabaseConnector, logger: ILogger, infotextStopRepository: JISInfotextsRopidGTFSStopsRepository, gtfsStopRepository: RopidGTFSStopsModel);
23
+ constructor(connector: IDatabaseConnector, logger: ILogger, infotextStopRepository: JISInfotextsRopidGTFSStopsRepository, infotextPresetsRepository: JISInfotextsPresetsRepository, gtfsStopRepository: RopidGTFSStopsModel);
22
24
  /**
23
25
  * Refresh all data from VYMI and delete old data
24
26
  *
@@ -24,12 +24,14 @@ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
24
24
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
25
25
  const RepositoryUtils_1 = require("../../shared/RepositoryUtils");
26
26
  const JISContainerToken_1 = require("../ioc/JISContainerToken");
27
+ const JISInfotextsPresetsRepository_1 = require("./JISInfotextsPresetsRepository");
27
28
  const JISInfotextsRopidGTFSStopsRepository_1 = require("./JISInfotextsRopidGTFSStopsRepository");
28
29
  let JISInfotextsRepository = class JISInfotextsRepository extends AbstractValidatableRepository_1.AbstractValidatableRepository {
29
- constructor(connector, logger, infotextStopRepository, gtfsStopRepository) {
30
+ constructor(connector, logger, infotextStopRepository, infotextPresetsRepository, gtfsStopRepository) {
30
31
  super(connector, logger);
31
32
  this.logger = logger;
32
33
  this.infotextStopRepository = infotextStopRepository;
34
+ this.infotextPresetsRepository = infotextPresetsRepository;
33
35
  this.gtfsStopRepository = gtfsStopRepository;
34
36
  this.schema = const_1.PG_SCHEMA;
35
37
  this.tableName = JISInfotextsModel_1.JISInfotextsModel.tableName;
@@ -64,6 +66,15 @@ let JISInfotextsRepository = class JISInfotextsRepository extends AbstractValida
64
66
  sourceKey: "stop_id",
65
67
  foreignKey: "stop_id",
66
68
  });
69
+ this.sequelizeModel.hasMany(this.infotextPresetsRepository["sequelizeModel"], {
70
+ sourceKey: "id",
71
+ foreignKey: "infotext_id",
72
+ as: "presets",
73
+ });
74
+ this.infotextPresetsRepository["sequelizeModel"].belongsTo(this.sequelizeModel, {
75
+ targetKey: "id",
76
+ foreignKey: "infotext_id",
77
+ });
67
78
  }
68
79
  /**
69
80
  * Refresh all data from VYMI and delete old data
@@ -146,8 +157,10 @@ exports.JISInfotextsRepository = JISInfotextsRepository = __decorate([
146
157
  __param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
147
158
  __param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
148
159
  __param(2, (0, tsyringe_1.inject)(JISContainerToken_1.JISContainerToken.JISInfotextsRopidGTFSStopsRepository)),
149
- __param(3, (0, tsyringe_1.inject)(JISContainerToken_1.JISContainerToken.RopidGTFSStopsRepository)),
160
+ __param(3, (0, tsyringe_1.inject)(JISContainerToken_1.JISContainerToken.JISInfotextsPresetsRepository)),
161
+ __param(4, (0, tsyringe_1.inject)(JISContainerToken_1.JISContainerToken.RopidGTFSStopsRepository)),
150
162
  __metadata("design:paramtypes", [Object, Object, JISInfotextsRopidGTFSStopsRepository_1.JISInfotextsRopidGTFSStopsRepository,
163
+ JISInfotextsPresetsRepository_1.JISInfotextsPresetsRepository,
151
164
  ropid_gtfs_1.RopidGTFSStopsModel])
152
165
  ], JISInfotextsRepository);
153
166
  //# sourceMappingURL=JISInfotextsRepository.js.map
@@ -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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"}
@@ -9,33 +9,24 @@ type RepositoryOptions = {
9
9
  transaction?: Transaction;
10
10
  };
11
11
  export declare class JISInfotextsRopidGTFSStopsRepository extends AbstractValidatableRepository {
12
- private logger;
13
12
  validator: JSONSchemaValidator;
14
13
  schema: string;
15
14
  tableName: string;
16
15
  private sequelizeModel;
17
16
  constructor(connector: IDatabaseConnector, logger: ILogger);
18
17
  /**
19
- * Delete all items last updated before a given date and time (where their `updated_at` is less than the given limit)
20
- *
21
- * @param dateTime The `updated_at` limit, where all items last updated before this limit shall be deleted
22
- * @param options Options for the operation
23
- * @returns The number of deleted items
18
+ * Removes rows that were not touched during the current refresh cycle any row whose `updated_at`
19
+ * predates `dateTime` was absent from the latest feed and is considered stale.
20
+ * Call this after `upsertAll` with the timestamp captured at the start of the save to clean up vanished entries.
24
21
  */
25
22
  deleteAllLastUpdatedBefore(dateTime: Date, options?: RepositoryOptions): Promise<number>;
26
23
  /**
27
- * Insert or update all given data. In case of an update, all attributes except for `created_at` shall be overwritten.
28
- *
29
- * @param data The data to be upserted
30
- * @param options Options for the operation
31
- * @returns The upserted items
24
+ * Inserts new rows or updates existing ones. On conflict, all columns except `created_at` are overwritten
25
+ * `created_at` is intentionally preserved to track when a row was first seen, while `updated_at` advances
26
+ * each cycle so stale-record cleanup can identify entries missing from the latest feed.
32
27
  */
33
28
  upsertAll(data: IJISInfotextsRopidGTFSStops[], options?: RepositoryOptions): ReturnType<ModelStatic<JISInfotextsRopidGTFSStopsModel>["bulkCreate"]>;
34
29
  private getUpdateAttributes;
35
- /**
36
- * @param options
37
- * @returns The number of deleted items
38
- */
39
30
  deleteAll(options?: RepositoryOptions): Promise<number>;
40
31
  }
41
32
  export {};
@@ -17,7 +17,6 @@ const const_1 = require("../../../schema-definitions/const");
17
17
  const JISInfotextsRopidGTFSStopsModel_1 = require("../../../schema-definitions/jis/models/JISInfotextsRopidGTFSStopsModel");
18
18
  const AbstractValidatableRepository_1 = require("@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractValidatableRepository");
19
19
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
20
- const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
21
20
  const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
22
21
  const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
23
22
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
@@ -25,7 +24,6 @@ const RepositoryUtils_1 = require("../../shared/RepositoryUtils");
25
24
  let JISInfotextsRopidGTFSStopsRepository = class JISInfotextsRopidGTFSStopsRepository extends AbstractValidatableRepository_1.AbstractValidatableRepository {
26
25
  constructor(connector, logger) {
27
26
  super(connector, logger);
28
- this.logger = logger;
29
27
  this.schema = const_1.PG_SCHEMA;
30
28
  this.tableName = JISInfotextsRopidGTFSStopsModel_1.JISInfotextsRopidGTFSStopsModel.tableName;
31
29
  this.validator = new golemio_validator_1.JSONSchemaValidator("JISInfotextsRopidGTFSStopsRepository", JISInfotextsRopidGTFSStopsModel_1.JISInfotextsRopidGTFSStopsModel.jsonSchema);
@@ -34,11 +32,9 @@ let JISInfotextsRopidGTFSStopsRepository = class JISInfotextsRopidGTFSStopsRepos
34
32
  .define(this.tableName, JISInfotextsRopidGTFSStopsModel_1.JISInfotextsRopidGTFSStopsModel.attributeModel, { schema: this.schema });
35
33
  }
36
34
  /**
37
- * Delete all items last updated before a given date and time (where their `updated_at` is less than the given limit)
38
- *
39
- * @param dateTime The `updated_at` limit, where all items last updated before this limit shall be deleted
40
- * @param options Options for the operation
41
- * @returns The number of deleted items
35
+ * Removes rows that were not touched during the current refresh cycle any row whose `updated_at`
36
+ * predates `dateTime` was absent from the latest feed and is considered stale.
37
+ * Call this after `upsertAll` with the timestamp captured at the start of the save to clean up vanished entries.
42
38
  */
43
39
  async deleteAllLastUpdatedBefore(dateTime, options) {
44
40
  try {
@@ -50,15 +46,13 @@ let JISInfotextsRopidGTFSStopsRepository = class JISInfotextsRopidGTFSStopsRepos
50
46
  });
51
47
  }
52
48
  catch (err) {
53
- throw new golemio_errors_1.GeneralError("Error in deleteAllLastUpdatedBefore", this.constructor.name, err);
49
+ throw RepositoryUtils_1.RepositoryUtils.mapSequelizeError(err, this.constructor.name, "deleteAllLastUpdatedBefore");
54
50
  }
55
51
  }
56
52
  /**
57
- * Insert or update all given data. In case of an update, all attributes except for `created_at` shall be overwritten.
58
- *
59
- * @param data The data to be upserted
60
- * @param options Options for the operation
61
- * @returns The upserted items
53
+ * Inserts new rows or updates existing ones. On conflict, all columns except `created_at` are overwritten
54
+ * `created_at` is intentionally preserved to track when a row was first seen, while `updated_at` advances
55
+ * each cycle so stale-record cleanup can identify entries missing from the latest feed.
62
56
  */
63
57
  async upsertAll(data, options) {
64
58
  try {
@@ -68,22 +62,20 @@ let JISInfotextsRopidGTFSStopsRepository = class JISInfotextsRopidGTFSStopsRepos
68
62
  });
69
63
  }
70
64
  catch (err) {
71
- RepositoryUtils_1.RepositoryUtils.mapSequelizeError(err, this.constructor.name, "upsertAll");
65
+ throw RepositoryUtils_1.RepositoryUtils.mapSequelizeError(err, this.constructor.name, "upsertAll");
72
66
  }
73
67
  }
68
+ // created_at is excluded so that re-upserting an existing row doesn't overwrite
69
+ // when it was first seen — only updated_at should advance on subsequent refreshes.
74
70
  getUpdateAttributes() {
75
- return Object.keys(JISInfotextsRopidGTFSStopsModel_1.JISInfotextsRopidGTFSStopsModel.attributeModel).filter((attribute) => !["created_at"].includes(attribute));
71
+ return Object.keys(JISInfotextsRopidGTFSStopsModel_1.JISInfotextsRopidGTFSStopsModel.attributeModel).filter((attribute) => attribute !== "created_at");
76
72
  }
77
- /**
78
- * @param options
79
- * @returns The number of deleted items
80
- */
81
73
  async deleteAll(options) {
82
74
  try {
83
75
  return await this.sequelizeModel.destroy({ where: {}, transaction: options?.transaction });
84
76
  }
85
77
  catch (err) {
86
- throw new golemio_errors_1.GeneralError("Error in deleteAll", this.constructor.name, err);
78
+ throw RepositoryUtils_1.RepositoryUtils.mapSequelizeError(err, this.constructor.name, "deleteAll");
87
79
  }
88
80
  }
89
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"JISInfotextsRopidGTFSStopsRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/repositories/JISInfotextsRopidGTFSStopsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAAuC;AACvC,4HAAkG;AAIlG,8IAA2I;AAC3I,wEAAqE;AACrE,6EAAwE;AACxE,mFAAkF;AAClF,mEAAmF;AACnF,iEAAwE;AACxE,kEAA6D;AAOtD,IAAM,oCAAoC,GAA1C,MAAM,oCAAqC,SAAQ,6DAA6B;IAOnF,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,iEAA+B,CAAC,SAAS,CAAC;QASzD,IAAI,CAAC,SAAS,GAAG,IAAI,uCAAmB,CACpC,sCAAsC,EACtC,iEAA+B,CAAC,UAAU,CAC7C,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,SAAS;aAC1B,aAAa,EAAE;aACf,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,iEAA+B,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzG,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,0BAA0B,CAAC,QAAc,EAAE,OAA2B;QAC/E,IAAI,CAAC;YACD,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;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,6BAAY,CAAC,qCAAqC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,SAAS,CAClB,IAAmC,EACnC,OAA2B;QAE3B,IAAI,CAAC;YACD,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;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,iCAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAEO,mBAAmB;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,iEAA+B,CAAC,cAAc,CAAC,CAAC,MAAM,CACrE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CACrD,CAAC;IACN,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,SAAS,CAAC,OAA2B;QAC9C,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,6BAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;CACJ,CAAA;AA/EY,oFAAoC;+CAApC,oCAAoC;IADhD,IAAA,qBAAU,GAAE;IASJ,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAA;IACnC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GATpB,oCAAoC,CA+EhD"}
1
+ {"version":3,"file":"JISInfotextsRopidGTFSStopsRepository.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/repositories/JISInfotextsRopidGTFSStopsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAAuC;AACvC,4HAAkG;AAIlG,8IAA2I;AAC3I,wEAAqE;AACrE,mFAAkF;AAClF,mEAAmF;AACnF,iEAAwE;AACxE,kEAA6D;AAOtD,IAAM,oCAAoC,GAA1C,MAAM,oCAAqC,SAAQ,6DAA6B;IAOnF,YAAiD,SAA6B,EAA4B,MAAe;QACrH,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QANtB,WAAM,GAAG,iBAAS,CAAC;QACnB,cAAS,GAAG,iEAA+B,CAAC,SAAS,CAAC;QAMzD,IAAI,CAAC,SAAS,GAAG,IAAI,uCAAmB,CACpC,sCAAsC,EACtC,iEAA+B,CAAC,UAAU,CAC7C,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,SAAS;aAC1B,aAAa,EAAE;aACf,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,iEAA+B,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzG,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,0BAA0B,CAAC,QAAc,EAAE,OAA2B;QAC/E,IAAI,CAAC;YACD,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;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,iCAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;QACtG,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,SAAS,CAClB,IAAmC,EACnC,OAA2B;QAE3B,IAAI,CAAC;YACD,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;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,iCAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;IAED,gFAAgF;IAChF,mFAAmF;IAC3E,mBAAmB;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,iEAA+B,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC;IACzH,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,OAA2B;QAC9C,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,iCAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;CACJ,CAAA;AApEY,oFAAoC;+CAApC,oCAAoC;IADhD,IAAA,qBAAU,GAAE;IAQI,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,iBAAiB,CAAC,CAAA;IAAiC,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAPhG,oCAAoC,CAoEhD"}
@@ -12,11 +12,8 @@ export declare class JISInfotextsDataService {
12
12
  private logger;
13
13
  constructor(infotextsRepository: JISInfotextsRepository, infotextsRopidGTFSStopsRepository: JISInfotextsRopidGTFSStopsRepository, infotextsPresetsRepository: JISInfotextsPresetsRepository, databaseConnector: IDatabaseConnector, logger: ILogger);
14
14
  /**
15
- * Insert or update all given infotexts and infotextsRopidGTFSStops data. In case of an update, all attributes except for
16
- * `created_at` shall be overwritten. Delete all non-updated data from before the refresh.
17
- *
18
- * @param infotexts The infotexts data to be upserted
19
- * @param infotextsRopidGTFSStops The infotextsRopidGTFSStops data to be upserted
15
+ * Insert or update all given infotexts, their stop links and preset links. In case of an update, all attributes except for
16
+ * `created_at` shall be overwritten. Rows absent from this refresh cycle are deleted as stale.
20
17
  */
21
18
  refreshData(infotexts: IJISInfotext[], infotextsRopidGTFSStops: IJISInfotextsRopidGTFSStops[], infotextsPresets: IJISInfotextsPresets[]): Promise<void>;
22
19
  }
@@ -30,11 +30,8 @@ let JISInfotextsDataService = class JISInfotextsDataService {
30
30
  // do nothing
31
31
  }
32
32
  /**
33
- * Insert or update all given infotexts and infotextsRopidGTFSStops data. In case of an update, all attributes except for
34
- * `created_at` shall be overwritten. Delete all non-updated data from before the refresh.
35
- *
36
- * @param infotexts The infotexts data to be upserted
37
- * @param infotextsRopidGTFSStops The infotextsRopidGTFSStops data to be upserted
33
+ * Insert or update all given infotexts, their stop links and preset links. In case of an update, all attributes except for
34
+ * `created_at` shall be overwritten. Rows absent from this refresh cycle are deleted as stale.
38
35
  */
39
36
  async refreshData(infotexts, infotextsRopidGTFSStops, infotextsPresets) {
40
37
  const connection = this.databaseConnector.getConnection();
@@ -1 +1 @@
1
- {"version":3,"file":"JISInfotextsDataService.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/services/JISInfotextsDataService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JISInfotextsDataService.js","sourceRoot":"","sources":["../../../../src/integration-engine/jis/services/JISInfotextsDataService.ts"],"names":[],"mappings":"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"}
@@ -31,9 +31,9 @@ let JISInfotextsTransformation = class JISInfotextsTransformation extends Abstra
31
31
  infotext_id: data.id,
32
32
  stop_id: id,
33
33
  })) ?? [];
34
- const infotextsPresets = data.informed_entity?.presets?.map(({ id }) => ({
34
+ const infotextsPresets = data.informed_entity?.presets?.map(({ route_name }) => ({
35
35
  infotext_id: data.id,
36
- route_name: id,
36
+ route_name,
37
37
  })) ?? [];
38
38
  return {
39
39
  infotext,