@golemio/ndic 1.1.4 → 1.1.5-rc.884560595
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.
- package/db/example/00_reset.sql +1 -0
- package/db/migrations/postgresql/20230515142731-regions-traffic-restrictions.js +53 -0
- package/db/migrations/postgresql/sqls/20230515142731-regions-traffic-restrictions-down.sql +3 -0
- package/db/migrations/postgresql/sqls/20230515142731-regions-traffic-restrictions-up.sql +110 -0
- package/dist/input-gateway/AbstractTrafficRestrictionsController.js +2 -2
- package/dist/input-gateway/AbstractTrafficRestrictionsController.js.map +1 -1
- package/dist/input-gateway/TrafficInfoController.js +2 -2
- package/dist/input-gateway/TrafficInfoController.js.map +1 -1
- package/dist/integration-engine/LegacyNdicWorker.d.ts +13 -0
- package/dist/integration-engine/LegacyNdicWorker.js +69 -0
- package/dist/integration-engine/LegacyNdicWorker.js.map +1 -0
- package/dist/integration-engine/NdicWorker.d.ts +3 -16
- package/dist/integration-engine/NdicWorker.js +7 -97
- package/dist/integration-engine/NdicWorker.js.map +1 -1
- package/dist/integration-engine/helpers/LteCze90PointsChecker.d.ts +8 -0
- package/dist/integration-engine/helpers/LteCze90PointsChecker.js +40 -0
- package/dist/integration-engine/helpers/LteCze90PointsChecker.js.map +1 -0
- package/dist/integration-engine/helpers/TrafficRestrictionsHelper.d.ts +7 -0
- package/dist/integration-engine/helpers/TrafficRestrictionsHelper.js +58 -0
- package/dist/integration-engine/helpers/TrafficRestrictionsHelper.js.map +1 -0
- package/dist/integration-engine/index.d.ts +3 -1
- package/dist/integration-engine/index.js +4 -1
- package/dist/integration-engine/index.js.map +1 -1
- package/dist/integration-engine/ioc/ContainerToken.d.ts +4 -0
- package/dist/integration-engine/ioc/ContainerToken.js +8 -0
- package/dist/integration-engine/ioc/ContainerToken.js.map +1 -0
- package/dist/integration-engine/ioc/Di.d.ts +3 -0
- package/dist/integration-engine/ioc/Di.js +18 -0
- package/dist/integration-engine/ioc/Di.js.map +1 -0
- package/dist/integration-engine/models/RsdTmcPointsModel.js +17 -3
- package/dist/integration-engine/models/RsdTmcPointsModel.js.map +1 -1
- package/dist/integration-engine/queueDefinitions.js +3 -3
- package/dist/integration-engine/queueDefinitions.js.map +1 -1
- package/dist/integration-engine/tasks/RegionsDataRetention.d.ts +6 -0
- package/dist/integration-engine/tasks/RegionsDataRetention.js +34 -0
- package/dist/integration-engine/tasks/RegionsDataRetention.js.map +1 -0
- package/dist/integration-engine/tasks/SaveTrafficRestrictionsRegions.d.ts +14 -0
- package/dist/integration-engine/tasks/SaveTrafficRestrictionsRegions.js +50 -0
- package/dist/integration-engine/tasks/SaveTrafficRestrictionsRegions.js.map +1 -0
- package/dist/integration-engine/tasks/schema/TrafficRestrictionsRegionsSchema.d.ts +18 -0
- package/dist/integration-engine/tasks/schema/TrafficRestrictionsRegionsSchema.js +29 -0
- package/dist/integration-engine/tasks/schema/TrafficRestrictionsRegionsSchema.js.map +1 -0
- package/dist/integration-engine/transformations/TrafficRestrictionsInterface.d.ts +2 -2
- package/dist/integration-engine/transformations/TrafficRestrictionsTransformation.js +3 -2
- package/dist/integration-engine/transformations/TrafficRestrictionsTransformation.js.map +1 -1
- package/dist/output-gateway/TrafficRouter.js +1 -1
- package/dist/output-gateway/TrafficRouter.js.map +1 -1
- package/dist/output-gateway/models/TrafficRestrictionsModel.js +4 -4
- package/dist/output-gateway/models/TrafficRestrictionsModel.js.map +1 -1
- package/docs/implementation_documentation.md +36 -5
- package/docs/ndic_erdiagram.png +0 -0
- package/package.json +5 -5
package/db/example/00_reset.sql
CHANGED
|
@@ -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', '20230515142731-regions-traffic-restrictions-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', '20230515142731-regions-traffic-restrictions-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,110 @@
|
|
|
1
|
+
CREATE TABLE ndic_traffic_restrictions_regions (
|
|
2
|
+
exchange json NULL,
|
|
3
|
+
publication_time timestamptz NULL,
|
|
4
|
+
publication_creator json NULL,
|
|
5
|
+
situation_id varchar(100) NOT NULL,
|
|
6
|
+
situation_version varchar(100) NOT NULL,
|
|
7
|
+
situation_version_time timestamptz NULL,
|
|
8
|
+
situation_confidentiality varchar(100) NULL,
|
|
9
|
+
situation_information_status varchar(100) NULL,
|
|
10
|
+
situation_urgency varchar(100) NULL,
|
|
11
|
+
situation_record_version varchar(100) NOT NULL,
|
|
12
|
+
situation_record_type varchar(100) NOT NULL,
|
|
13
|
+
situation_record_id varchar(100) NOT NULL,
|
|
14
|
+
situation_record_creation_time timestamptz NOT NULL,
|
|
15
|
+
situation_record_version_time timestamptz NOT NULL,
|
|
16
|
+
probability_of_occurrence varchar(100) NULL,
|
|
17
|
+
"source" varchar(100) NULL,
|
|
18
|
+
validity_status varchar(100) NULL,
|
|
19
|
+
validity_overall_start_time timestamptz NULL,
|
|
20
|
+
validity_overall_end_time timestamptz NULL,
|
|
21
|
+
impact_capacity_remaining float4 NULL,
|
|
22
|
+
impact_number_of_lanes_restricted int4 NULL,
|
|
23
|
+
impact_number_of_operational_lanes int4 NULL,
|
|
24
|
+
impact_original_number_of_lanes int4 NULL,
|
|
25
|
+
impact_traffic_constriction_type varchar(100) NULL,
|
|
26
|
+
impact_delays_type varchar(100) NULL,
|
|
27
|
+
impact_delay_time_value float4 NULL,
|
|
28
|
+
cause json NULL,
|
|
29
|
+
general_public_comment text NULL,
|
|
30
|
+
group_of_locations_type varchar(100) NULL,
|
|
31
|
+
supplementary_positional_description json NULL,
|
|
32
|
+
destination json NULL,
|
|
33
|
+
alert_c_linear json NULL,
|
|
34
|
+
linear_within_linear_element json NULL,
|
|
35
|
+
global_network_linear json NULL,
|
|
36
|
+
linear_extension json NULL,
|
|
37
|
+
geom_gn_line public.geometry NULL,
|
|
38
|
+
geom_openlr_line public.geometry NULL,
|
|
39
|
+
situation_record_extension json NULL,
|
|
40
|
+
number_of_obstructions int4 NULL,
|
|
41
|
+
mobility_of_obstruction json NULL,
|
|
42
|
+
compliance_option varchar(100) NULL,
|
|
43
|
+
applicable_for_traffic_direction varchar(100) NULL,
|
|
44
|
+
applicable_for_traffic_type varchar(100) NULL,
|
|
45
|
+
places_at_which_applicable varchar(100) NULL,
|
|
46
|
+
for_vehicles_with_characteristics_of json NULL,
|
|
47
|
+
roadworks_duration varchar(100) NULL,
|
|
48
|
+
roadworks_scale varchar(100) NULL,
|
|
49
|
+
under_traffic bool NULL,
|
|
50
|
+
urgent_roadworks bool NULL,
|
|
51
|
+
mobility json NULL,
|
|
52
|
+
subjects json NULL,
|
|
53
|
+
maintenance_vehicles json NULL,
|
|
54
|
+
abnormal_traffic_type varchar(100) NULL,
|
|
55
|
+
accident_type varchar(100) NULL,
|
|
56
|
+
group_of_vehicles_involved json NULL,
|
|
57
|
+
car_park_identity text NULL,
|
|
58
|
+
car_park_occupancy varchar(100) NULL,
|
|
59
|
+
number_of_vacant_parking_spaces int4 NULL,
|
|
60
|
+
driving_condition_type varchar(100) NULL,
|
|
61
|
+
construction_work_type varchar(100) NULL,
|
|
62
|
+
disturbance_activity_type varchar(100) NULL,
|
|
63
|
+
environmental_obstruction_type varchar(100) NULL,
|
|
64
|
+
general_instruction_to_road_users_type varchar(100) NULL,
|
|
65
|
+
general_message_to_road_users json NULL,
|
|
66
|
+
general_network_management_type varchar(100) NULL,
|
|
67
|
+
traffic_manually_directed_by varchar(100) NULL,
|
|
68
|
+
infrastructure_damage_type varchar(100) NULL,
|
|
69
|
+
road_maintenance_type varchar(100) NULL,
|
|
70
|
+
non_weather_related_road_condition_type varchar(100) NULL,
|
|
71
|
+
poor_environment_type varchar(100) NULL,
|
|
72
|
+
public_event_type varchar(100) NULL,
|
|
73
|
+
rerouting_management_type varchar(100) NULL,
|
|
74
|
+
rerouting_itinerary_description json NULL,
|
|
75
|
+
signed_rerouting bool NULL,
|
|
76
|
+
entry text NULL,
|
|
77
|
+
"exit" text NULL,
|
|
78
|
+
road_or_junction_number text NULL,
|
|
79
|
+
road_or_carriageway_or_lane_management_type varchar(100) NULL,
|
|
80
|
+
minimum_car_occupancy int4 NULL,
|
|
81
|
+
roadside_assistance_type varchar(100) NULL,
|
|
82
|
+
speed_management_type varchar(100) NULL,
|
|
83
|
+
temporary_speed_limit float4 NULL,
|
|
84
|
+
vehicle_obstruction_type varchar(100) NULL,
|
|
85
|
+
obstructing_vehicle json NULL,
|
|
86
|
+
winter_equipment_management_type varchar(100) NULL,
|
|
87
|
+
create_batch_id int8 NULL,
|
|
88
|
+
created_at timestamptz NULL,
|
|
89
|
+
created_by varchar(150) NULL,
|
|
90
|
+
update_batch_id int8 NULL,
|
|
91
|
+
updated_at timestamptz NULL,
|
|
92
|
+
updated_by varchar(150) NULL,
|
|
93
|
+
geom_alert_c_line public.geometry NULL,
|
|
94
|
+
alert_c_direction varchar(100) NULL,
|
|
95
|
+
CONSTRAINT ndic_traffic_restrictions_regions_pk PRIMARY KEY (situation_record_id, situation_record_version_time)
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
CREATE PROCEDURE regions_data_retention(dataretentionminutes integer)
|
|
99
|
+
LANGUAGE plpgsql
|
|
100
|
+
AS $procedure$
|
|
101
|
+
begin
|
|
102
|
+
delete from ndic.ndic_traffic_restrictions_regions where situation_record_version_time < (NOW() - (dataretentionminutes || ' minutes')::interval);
|
|
103
|
+
end;
|
|
104
|
+
$procedure$
|
|
105
|
+
;
|
|
106
|
+
|
|
107
|
+
create view v_traffic_restrictions_all as
|
|
108
|
+
select * from ndic_traffic_restrictions
|
|
109
|
+
union all
|
|
110
|
+
select * from ndic_traffic_restrictions_regions
|
|
@@ -24,11 +24,11 @@ class AbstractTrafficRestrictionsController extends input_gateway_1.BaseControll
|
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
catch (err) {
|
|
27
|
-
if (err instanceof golemio_errors_1.
|
|
27
|
+
if (err instanceof golemio_errors_1.AbstractGolemioError) {
|
|
28
28
|
throw err;
|
|
29
29
|
}
|
|
30
30
|
else {
|
|
31
|
-
throw new golemio_errors_1.
|
|
31
|
+
throw new golemio_errors_1.GeneralError("Error while validating input data.", this.name, err, 422);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractTrafficRestrictionsController.js","sourceRoot":"","sources":["../../src/input-gateway/AbstractTrafficRestrictionsController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA4B;AAC5B,oEAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"AbstractTrafficRestrictionsController.js","sourceRoot":"","sources":["../../src/input-gateway/AbstractTrafficRestrictionsController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA4B;AAC5B,oEAAkE;AAClE,6EAA8F;AAG9F,MAAsB,qCAAsC,SAAQ,8BAAc;IAG9E,YAAY,SAAqB;QAC7B,KAAK,CAAC,WAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAGzB,gBAAW,GAAG,CAAO,IAAS,EAAiB,EAAE;YACpD,IAAI;gBACA,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAEpC,MAAM,IAAI,CAAC,qBAAqB,CAC5B,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,EACrD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EACnC;oBACI,UAAU,EAAE,IAAI;iBACnB,CACJ,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;qBAAM;oBACH,MAAM,IAAI,6BAAY,CAAC,oCAAoC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;iBACrF;aACJ;QACL,CAAC,CAAA,CAAC;IApBF,CAAC;CAqBJ;AA1BD,sFA0BC"}
|
|
@@ -25,11 +25,11 @@ class TrafficInfoController extends input_gateway_1.BaseController {
|
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
catch (err) {
|
|
28
|
-
if (err instanceof golemio_errors_1.
|
|
28
|
+
if (err instanceof golemio_errors_1.AbstractGolemioError) {
|
|
29
29
|
throw err;
|
|
30
30
|
}
|
|
31
31
|
else {
|
|
32
|
-
throw new golemio_errors_1.
|
|
32
|
+
throw new golemio_errors_1.GeneralError("Error while validating input data.", this.name, err, 422);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrafficInfoController.js","sourceRoot":"","sources":["../../src/input-gateway/TrafficInfoController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oEAAkE;AAClE,mFAAkF;AAClF,
|
|
1
|
+
{"version":3,"file":"TrafficInfoController.js","sourceRoot":"","sources":["../../src/input-gateway/TrafficInfoController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oEAAkE;AAClE,mFAAkF;AAClF,6EAA8F;AAC9F,gDAA4B;AAE5B,MAAa,qBAAsB,SAAQ,8BAAc;IACrD;QACI,KAAK,CAAC,WAAI,CAAC,IAAI,EAAE,IAAI,uCAAmB,CAAC,WAAI,CAAC,YAAY,CAAC,IAAI,EAAE,WAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAGnG,gBAAW,GAAG,CAAO,IAAS,EAAiB,EAAE;YACpD,IAAI;gBACA,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAEpC,MAAM,IAAI,CAAC,qBAAqB,CAC5B,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,kBAAkB,EAChD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EACnC;oBACI,UAAU,EAAE,IAAI;iBACnB,CACJ,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;qBAAM;oBACH,MAAM,IAAI,6BAAY,CAAC,oCAAoC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;iBACrF;aACJ;QACL,CAAC,CAAA,CAAC;IApBF,CAAC;CAqBJ;AAxBD,sDAwBC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseWorker } from "@golemio/core/dist/integration-engine";
|
|
2
|
+
export declare class LegacyNdicWorker extends BaseWorker {
|
|
3
|
+
private readonly queuePrefix;
|
|
4
|
+
private ndicTrafficInfoTransformation;
|
|
5
|
+
private ndicTrafficRestrictionsTransformation;
|
|
6
|
+
private ndicTrafficInfoModel;
|
|
7
|
+
private ndicTrafficRestrictionsModel;
|
|
8
|
+
constructor();
|
|
9
|
+
saveTrafficInfo: (msg: any) => Promise<void>;
|
|
10
|
+
saveTrafficRestrictions: (msg: any) => Promise<void>;
|
|
11
|
+
private uniqueInfoArray;
|
|
12
|
+
private populateWithGeomAlertCLineInfo;
|
|
13
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
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.LegacyNdicWorker = void 0;
|
|
13
|
+
const TrafficInfoTransformation_1 = require("./transformations/TrafficInfoTransformation");
|
|
14
|
+
const TrafficRestrictionsTransformation_1 = require("./transformations/TrafficRestrictionsTransformation");
|
|
15
|
+
const _sch_1 = require("../schema-definitions");
|
|
16
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
17
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
18
|
+
const TrafficRestrictionsHelper_1 = require("./helpers/TrafficRestrictionsHelper");
|
|
19
|
+
class LegacyNdicWorker extends integration_engine_1.BaseWorker {
|
|
20
|
+
constructor() {
|
|
21
|
+
super();
|
|
22
|
+
this.saveTrafficInfo = (msg) => __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const data = JSON.parse(msg.content.toString());
|
|
24
|
+
const transformedData = yield this.ndicTrafficInfoTransformation.transform(data);
|
|
25
|
+
const dataToSave = yield this.populateWithGeomAlertCLineInfo(transformedData);
|
|
26
|
+
yield this.ndicTrafficInfoModel.save(this.uniqueInfoArray(dataToSave));
|
|
27
|
+
});
|
|
28
|
+
this.saveTrafficRestrictions = (msg) => __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const data = JSON.parse(msg.content.toString());
|
|
30
|
+
const transformedData = yield this.ndicTrafficRestrictionsTransformation.transform(data);
|
|
31
|
+
const dataToSave = yield TrafficRestrictionsHelper_1.TrafficRestrictionsHelper.populateWithGeomAlertCLineRestrictions(transformedData);
|
|
32
|
+
yield this.ndicTrafficRestrictionsModel.save(TrafficRestrictionsHelper_1.TrafficRestrictionsHelper.uniqueRestrictionsArray(dataToSave));
|
|
33
|
+
});
|
|
34
|
+
this.uniqueInfoArray = (arr) => {
|
|
35
|
+
const constraintsArr = [];
|
|
36
|
+
const resultArr = [];
|
|
37
|
+
for (const obj of arr) {
|
|
38
|
+
if (!constraintsArr.includes(obj.situation_id + obj.situation_record_type + obj.situation_record_version_time)) {
|
|
39
|
+
constraintsArr.push(obj.situation_id + obj.situation_record_type + obj.situation_record_version_time);
|
|
40
|
+
resultArr.push(obj);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return resultArr;
|
|
44
|
+
};
|
|
45
|
+
this.populateWithGeomAlertCLineInfo = (transformedData) => __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
for (const dataObj of transformedData) {
|
|
47
|
+
dataObj.geom_alert_c_line = yield TrafficRestrictionsHelper_1.TrafficRestrictionsHelper.parseGeomAlertCLine(dataObj.alert_c_linear);
|
|
48
|
+
}
|
|
49
|
+
return transformedData;
|
|
50
|
+
});
|
|
51
|
+
this.queuePrefix = integration_engine_1.config.RABBIT_EXCHANGE_NAME + "." + _sch_1.Ndic.name.toLowerCase();
|
|
52
|
+
this.ndicTrafficInfoTransformation = new TrafficInfoTransformation_1.TrafficInfoTransformation();
|
|
53
|
+
this.ndicTrafficRestrictionsTransformation = new TrafficRestrictionsTransformation_1.TrafficRestrictionsTransformation();
|
|
54
|
+
this.ndicTrafficInfoModel = new integration_engine_1.PostgresModel(_sch_1.Ndic.traffic_info.name + "Model", {
|
|
55
|
+
outputSequelizeAttributes: _sch_1.Ndic.traffic_info.outputSequelizeAttributes,
|
|
56
|
+
pgSchema: _sch_1.Ndic.pgSchema,
|
|
57
|
+
pgTableName: _sch_1.Ndic.traffic_info.pgTableName,
|
|
58
|
+
savingType: "insertOnly",
|
|
59
|
+
}, new golemio_validator_1.JSONSchemaValidator(_sch_1.Ndic.traffic_info.name + "PgModelValidator", _sch_1.Ndic.traffic_info.outputSchema));
|
|
60
|
+
this.ndicTrafficRestrictionsModel = new integration_engine_1.PostgresModel(_sch_1.Ndic.traffic_restrictions.name + "Model", {
|
|
61
|
+
outputSequelizeAttributes: _sch_1.Ndic.traffic_restrictions.outputSequelizeAttributes,
|
|
62
|
+
pgSchema: _sch_1.Ndic.pgSchema,
|
|
63
|
+
pgTableName: _sch_1.Ndic.traffic_restrictions.pgTableName,
|
|
64
|
+
savingType: "insertOnly",
|
|
65
|
+
}, new golemio_validator_1.JSONSchemaValidator(_sch_1.Ndic.traffic_restrictions.name + "PgModelValidator", _sch_1.Ndic.traffic_restrictions.outputSchema));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.LegacyNdicWorker = LegacyNdicWorker;
|
|
69
|
+
//# sourceMappingURL=LegacyNdicWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegacyNdicWorker.js","sourceRoot":"","sources":["../../src/integration-engine/LegacyNdicWorker.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2FAA0F;AAC1F,2GAA0G;AAC1G,gDAA4B;AAC5B,8EAA0F;AAC1F,mFAAkF;AAClF,mFAAgF;AAGhF,MAAa,gBAAiB,SAAQ,+BAAU;IAQ5C;QACI,KAAK,EAAE,CAAC;QA6BL,oBAAe,GAAG,CAAO,GAAQ,EAAiB,EAAE;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,eAAe,CAAC,CAAC;YAE9E,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAA,CAAC;QAEK,4BAAuB,GAAG,CAAO,GAAQ,EAAiB,EAAE;YAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,qCAAqC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzF,MAAM,UAAU,GAAG,MAAM,qDAAyB,CAAC,sCAAsC,CAAC,eAAe,CAAC,CAAC;YAE3G,MAAM,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,qDAAyB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;QAChH,CAAC,CAAA,CAAC;QAEM,oBAAe,GAAG,CAAC,GAAwB,EAAE,EAAE;YACnD,MAAM,cAAc,GAAa,EAAE,CAAC;YACpC,MAAM,SAAS,GAAwB,EAAE,CAAC;YAC1C,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;gBACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC,6BAA6B,CAAC,EAAE;oBAC5G,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC,6BAA6B,CAAC,CAAC;oBACtG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACvB;aACJ;YACD,OAAO,SAAS,CAAC;QACrB,CAAC,CAAC;QAEM,mCAA8B,GAAG,CAAO,eAAoC,EAAgC,EAAE;YAClH,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE;gBACnC,OAAO,CAAC,iBAAiB,GAAG,MAAM,qDAAyB,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;aAC3G;YACD,OAAO,eAAe,CAAC;QAC3B,CAAC,CAAA,CAAC;QA7DE,IAAI,CAAC,WAAW,GAAG,2BAAM,CAAC,oBAAoB,GAAG,GAAG,GAAG,WAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAE/E,IAAI,CAAC,6BAA6B,GAAG,IAAI,qDAAyB,EAAE,CAAC;QACrE,IAAI,CAAC,qCAAqC,GAAG,IAAI,qEAAiC,EAAE,CAAC;QAErF,IAAI,CAAC,oBAAoB,GAAG,IAAI,kCAAa,CACzC,WAAI,CAAC,YAAY,CAAC,IAAI,GAAG,OAAO,EAChC;YACI,yBAAyB,EAAE,WAAI,CAAC,YAAY,CAAC,yBAAyB;YACtE,QAAQ,EAAE,WAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,WAAI,CAAC,YAAY,CAAC,WAAW;YAC1C,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,WAAI,CAAC,YAAY,CAAC,IAAI,GAAG,kBAAkB,EAAE,WAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CACvG,CAAC;QAEF,IAAI,CAAC,4BAA4B,GAAG,IAAI,kCAAa,CACjD,WAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,OAAO,EACxC;YACI,yBAAyB,EAAE,WAAI,CAAC,oBAAoB,CAAC,yBAAyB;YAC9E,QAAQ,EAAE,WAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,WAAI,CAAC,oBAAoB,CAAC,WAAW;YAClD,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,WAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,kBAAkB,EAAE,WAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CACvH,CAAC;IACN,CAAC;CAoCJ;AAxED,4CAwEC"}
|
|
@@ -1,18 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
private readonly queuePrefix;
|
|
5
|
-
private ndicTrafficInfoTransformation;
|
|
6
|
-
private ndicTrafficRestrictionsTransformation;
|
|
7
|
-
private ndicTrafficInfoModel;
|
|
8
|
-
private ndicTrafficRestrictionsModel;
|
|
9
|
-
protected rsdTmcPointsModel: RsdTmcPointsModel;
|
|
1
|
+
import { AbstractWorker } from "@golemio/core/dist/integration-engine";
|
|
2
|
+
export declare class NdicWorker extends AbstractWorker {
|
|
3
|
+
protected name: string;
|
|
10
4
|
constructor();
|
|
11
|
-
saveTrafficInfo: (msg: any) => Promise<void>;
|
|
12
|
-
saveTrafficRestrictions: (msg: any) => Promise<void>;
|
|
13
|
-
private uniqueRestrictionsArray;
|
|
14
|
-
private uniqueInfoArray;
|
|
15
|
-
private populateWithGeomAlertCLineInfo;
|
|
16
|
-
private populateWithGeomAlertCLineRestrictions;
|
|
17
|
-
private parseGeomAlertCLine;
|
|
18
5
|
}
|
|
@@ -1,106 +1,16 @@
|
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.NdicWorker = void 0;
|
|
13
|
-
const TrafficInfoTransformation_1 = require("./transformations/TrafficInfoTransformation");
|
|
14
|
-
const TrafficRestrictionsTransformation_1 = require("./transformations/TrafficRestrictionsTransformation");
|
|
15
|
-
const _sch_1 = require("../schema-definitions");
|
|
16
4
|
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
5
|
+
const SaveTrafficRestrictionsRegions_1 = require("./tasks/SaveTrafficRestrictionsRegions");
|
|
6
|
+
const RegionsDataRetention_1 = require("./tasks/RegionsDataRetention");
|
|
7
|
+
const _sch_1 = require("../schema-definitions");
|
|
8
|
+
class NdicWorker extends integration_engine_1.AbstractWorker {
|
|
20
9
|
constructor() {
|
|
21
10
|
super();
|
|
22
|
-
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
const data = JSON.parse(msg.content.toString());
|
|
26
|
-
const transformedData = yield this.ndicTrafficInfoTransformation.transform(data);
|
|
27
|
-
const dataToSave = yield this.populateWithGeomAlertCLineInfo(transformedData);
|
|
28
|
-
yield this.ndicTrafficInfoModel.save(this.uniqueInfoArray(dataToSave));
|
|
29
|
-
});
|
|
30
|
-
this.saveTrafficRestrictions = (msg) => __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
const data = JSON.parse(msg.content.toString());
|
|
32
|
-
const transformedData = yield this.ndicTrafficRestrictionsTransformation.transform(data);
|
|
33
|
-
const dataToSave = yield this.populateWithGeomAlertCLineRestrictions(transformedData);
|
|
34
|
-
yield this.ndicTrafficRestrictionsModel.save(this.uniqueRestrictionsArray(dataToSave));
|
|
35
|
-
});
|
|
36
|
-
this.uniqueRestrictionsArray = (arr) => {
|
|
37
|
-
const constraintsArr = [];
|
|
38
|
-
const resultArr = [];
|
|
39
|
-
for (const obj of arr) {
|
|
40
|
-
if (!constraintsArr.includes(obj.situation_record_id + obj.situation_record_version_time)) {
|
|
41
|
-
constraintsArr.push(obj.situation_record_id + obj.situation_record_version_time);
|
|
42
|
-
resultArr.push(obj);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return resultArr;
|
|
46
|
-
};
|
|
47
|
-
this.uniqueInfoArray = (arr) => {
|
|
48
|
-
const constraintsArr = [];
|
|
49
|
-
const resultArr = [];
|
|
50
|
-
for (const obj of arr) {
|
|
51
|
-
if (!constraintsArr.includes(obj.situation_id + obj.situation_record_type + obj.situation_record_version_time)) {
|
|
52
|
-
constraintsArr.push(obj.situation_id + obj.situation_record_type + obj.situation_record_version_time);
|
|
53
|
-
resultArr.push(obj);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return resultArr;
|
|
57
|
-
};
|
|
58
|
-
this.populateWithGeomAlertCLineInfo = (transformedData) => __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
for (const dataObj of transformedData) {
|
|
60
|
-
dataObj.geom_alert_c_line = yield this.parseGeomAlertCLine(dataObj.alert_c_linear);
|
|
61
|
-
}
|
|
62
|
-
return transformedData;
|
|
63
|
-
});
|
|
64
|
-
this.populateWithGeomAlertCLineRestrictions = (transformedData) => __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
for (const dataObj of transformedData) {
|
|
66
|
-
dataObj.geom_alert_c_line = yield this.parseGeomAlertCLine(dataObj.alert_c_linear);
|
|
67
|
-
}
|
|
68
|
-
return transformedData;
|
|
69
|
-
});
|
|
70
|
-
this.parseGeomAlertCLine = (alertCLinearObj) => __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
if (!alertCLinearObj)
|
|
72
|
-
return undefined;
|
|
73
|
-
const primaryPointSpecificLocation = alertCLinearObj.alertCMethod2PrimaryPointLocation.alertCLocation.specificLocation;
|
|
74
|
-
const secondaryPointSpecificLocation = alertCLinearObj.alertCMethod2SecondaryPointLocation.alertCLocation.specificLocation;
|
|
75
|
-
const primaryPointObj = yield this.rsdTmcPointsModel.GetOne(primaryPointSpecificLocation);
|
|
76
|
-
const secondaryPointObj = yield this.rsdTmcPointsModel.GetOne(secondaryPointSpecificLocation);
|
|
77
|
-
if (primaryPointObj && secondaryPointObj) {
|
|
78
|
-
const coordinatesArr = [
|
|
79
|
-
[primaryPointObj.wgs84_x.replace(",", "."), primaryPointObj.wgs84_y.replace(",", ".")],
|
|
80
|
-
[secondaryPointObj.wgs84_x.replace(",", "."), secondaryPointObj.wgs84_y.replace(",", ".")],
|
|
81
|
-
];
|
|
82
|
-
return {
|
|
83
|
-
coordinates: coordinatesArr,
|
|
84
|
-
type: "LineString",
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
return undefined;
|
|
88
|
-
});
|
|
89
|
-
this.queuePrefix = integration_engine_1.config.RABBIT_EXCHANGE_NAME + "." + _sch_1.Ndic.name.toLowerCase();
|
|
90
|
-
this.ndicTrafficInfoTransformation = new TrafficInfoTransformation_1.TrafficInfoTransformation();
|
|
91
|
-
this.ndicTrafficRestrictionsTransformation = new TrafficRestrictionsTransformation_1.TrafficRestrictionsTransformation();
|
|
92
|
-
this.ndicTrafficInfoModel = new integration_engine_1.PostgresModel(_sch_1.Ndic.traffic_info.name + "Model", {
|
|
93
|
-
outputSequelizeAttributes: _sch_1.Ndic.traffic_info.outputSequelizeAttributes,
|
|
94
|
-
pgSchema: _sch_1.Ndic.pgSchema,
|
|
95
|
-
pgTableName: _sch_1.Ndic.traffic_info.pgTableName,
|
|
96
|
-
savingType: "insertOnly",
|
|
97
|
-
}, new golemio_validator_1.JSONSchemaValidator(_sch_1.Ndic.traffic_info.name + "PgModelValidator", _sch_1.Ndic.traffic_info.outputSchema));
|
|
98
|
-
this.ndicTrafficRestrictionsModel = new integration_engine_1.PostgresModel(_sch_1.Ndic.traffic_restrictions.name + "Model", {
|
|
99
|
-
outputSequelizeAttributes: _sch_1.Ndic.traffic_restrictions.outputSequelizeAttributes,
|
|
100
|
-
pgSchema: _sch_1.Ndic.pgSchema,
|
|
101
|
-
pgTableName: _sch_1.Ndic.traffic_restrictions.pgTableName,
|
|
102
|
-
savingType: "insertOnly",
|
|
103
|
-
}, new golemio_validator_1.JSONSchemaValidator(_sch_1.Ndic.traffic_restrictions.name + "PgModelValidator", _sch_1.Ndic.traffic_restrictions.outputSchema));
|
|
11
|
+
this.name = _sch_1.Ndic.name;
|
|
12
|
+
this.registerTask(new SaveTrafficRestrictionsRegions_1.SaveTrafficRestrictionsRegions(this.getQueuePrefix()));
|
|
13
|
+
this.registerTask(new RegionsDataRetention_1.RegionsDataRetention(this.getQueuePrefix()));
|
|
104
14
|
}
|
|
105
15
|
}
|
|
106
16
|
exports.NdicWorker = NdicWorker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NdicWorker.js","sourceRoot":"","sources":["../../src/integration-engine/NdicWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NdicWorker.js","sourceRoot":"","sources":["../../src/integration-engine/NdicWorker.ts"],"names":[],"mappings":";;;AAAA,8EAAuE;AACvE,2FAAwF;AACxF,uEAAoE;AACpE,gDAA4B;AAE5B,MAAa,UAAW,SAAQ,mCAAc;IAG1C;QACI,KAAK,EAAE,CAAC;QAHF,SAAI,GAAW,WAAI,CAAC,IAAI,CAAC;QAK/B,IAAI,CAAC,YAAY,CAAC,IAAI,+DAA8B,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,YAAY,CAAC,IAAI,2CAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;CACJ;AATD,gCASC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ITrafficRestrictionsModel } from "../transformations/TrafficRestrictionsInterface";
|
|
2
|
+
export declare class LteCze90PointsChecker {
|
|
3
|
+
private filtrationLookup;
|
|
4
|
+
private relevantLcds;
|
|
5
|
+
constructor();
|
|
6
|
+
initialize(): Promise<void>;
|
|
7
|
+
shouldSave(input: ITrafficRestrictionsModel): boolean;
|
|
8
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
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.LteCze90PointsChecker = void 0;
|
|
13
|
+
const Di_1 = require("@golemio/traffic-common/dist/integration-engine/ioc/Di");
|
|
14
|
+
const ModuleContainerToken_1 = require("@golemio/traffic-common/dist/integration-engine/ioc/ModuleContainerToken");
|
|
15
|
+
class LteCze90PointsChecker {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.relevantLcds = [];
|
|
18
|
+
this.filtrationLookup = Di_1.TrafficCommonContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.LteCze90PointsSjtskInAreaRepository);
|
|
19
|
+
}
|
|
20
|
+
initialize() {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
this.relevantLcds = (yield this.filtrationLookup.getFiltrationData()).map((element) => element.lcd);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
shouldSave(input) {
|
|
26
|
+
var _a, _b;
|
|
27
|
+
const primaryPointSpecificLocation = (_a = input.alert_c_linear) === null || _a === void 0 ? void 0 : _a.alertCMethod2PrimaryPointLocation.alertCLocation.specificLocation;
|
|
28
|
+
const secondaryPointSpecificLocation = (_b = input.alert_c_linear) === null || _b === void 0 ? void 0 : _b.alertCMethod2SecondaryPointLocation.alertCLocation.specificLocation;
|
|
29
|
+
if (primaryPointSpecificLocation === undefined ||
|
|
30
|
+
primaryPointSpecificLocation == null ||
|
|
31
|
+
secondaryPointSpecificLocation === undefined ||
|
|
32
|
+
secondaryPointSpecificLocation === null) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return (this.relevantLcds.includes(Number(primaryPointSpecificLocation)) ||
|
|
36
|
+
this.relevantLcds.includes(Number(secondaryPointSpecificLocation)));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.LteCze90PointsChecker = LteCze90PointsChecker;
|
|
40
|
+
//# sourceMappingURL=LteCze90PointsChecker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LteCze90PointsChecker.js","sourceRoot":"","sources":["../../../src/integration-engine/helpers/LteCze90PointsChecker.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,+EAAgG;AAChG,mHAAsI;AAGtI,MAAa,qBAAqB;IAI9B;QAFQ,iBAAY,GAAa,EAAE,CAAC;QAGhC,IAAI,CAAC,gBAAgB,GAAG,2BAAsB,CAAC,OAAO,CAClD,2CAAkB,CAAC,mCAAmC,CACzD,CAAC;IACN,CAAC;IAEY,UAAU;;YACnB,IAAI,CAAC,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxG,CAAC;KAAA;IAEM,UAAU,CAAC,KAAgC;;QAC9C,MAAM,4BAA4B,GAC9B,MAAA,KAAK,CAAC,cAAc,0CAAE,iCAAiC,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAC5F,MAAM,8BAA8B,GAChC,MAAA,KAAK,CAAC,cAAc,0CAAE,mCAAmC,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAE9F,IACI,4BAA4B,KAAK,SAAS;YAC1C,4BAA4B,IAAI,IAAI;YACpC,8BAA8B,KAAK,SAAS;YAC5C,8BAA8B,KAAK,IAAI,EACzC;YACE,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,CACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;YAChE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CACrE,CAAC;IACN,CAAC;CACJ;AAlCD,sDAkCC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ITrafficRestrictionsModel } from "../transformations/TrafficRestrictionsInterface";
|
|
2
|
+
import { LineString } from "@golemio/core/dist/shared/geojson";
|
|
3
|
+
export declare class TrafficRestrictionsHelper {
|
|
4
|
+
static uniqueRestrictionsArray: (arr: ITrafficRestrictionsModel[]) => ITrafficRestrictionsModel[];
|
|
5
|
+
static populateWithGeomAlertCLineRestrictions: (transformedData: ITrafficRestrictionsModel[]) => Promise<ITrafficRestrictionsModel[]>;
|
|
6
|
+
static parseGeomAlertCLine: (alertCLinearObj: Record<string, any> | undefined) => Promise<LineString | undefined>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
var _a;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.TrafficRestrictionsHelper = void 0;
|
|
14
|
+
const ContainerToken_1 = require("../ioc/ContainerToken");
|
|
15
|
+
const Di_1 = require("../ioc/Di");
|
|
16
|
+
class TrafficRestrictionsHelper {
|
|
17
|
+
}
|
|
18
|
+
exports.TrafficRestrictionsHelper = TrafficRestrictionsHelper;
|
|
19
|
+
_a = TrafficRestrictionsHelper;
|
|
20
|
+
//#region Public Methods
|
|
21
|
+
TrafficRestrictionsHelper.uniqueRestrictionsArray = (arr) => {
|
|
22
|
+
const constraintsArr = [];
|
|
23
|
+
const resultArr = [];
|
|
24
|
+
for (const obj of arr) {
|
|
25
|
+
if (!constraintsArr.includes(obj.situation_record_id + obj.situation_record_version_time)) {
|
|
26
|
+
constraintsArr.push(obj.situation_record_id + obj.situation_record_version_time);
|
|
27
|
+
resultArr.push(obj);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return resultArr;
|
|
31
|
+
};
|
|
32
|
+
TrafficRestrictionsHelper.populateWithGeomAlertCLineRestrictions = (transformedData) => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
for (const dataObj of transformedData) {
|
|
34
|
+
dataObj.geom_alert_c_line = yield _a.parseGeomAlertCLine(dataObj.alert_c_linear);
|
|
35
|
+
}
|
|
36
|
+
return transformedData;
|
|
37
|
+
});
|
|
38
|
+
TrafficRestrictionsHelper.parseGeomAlertCLine = (alertCLinearObj) => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
|
+
if (!alertCLinearObj)
|
|
40
|
+
return undefined;
|
|
41
|
+
const rsTmcRepository = Di_1.NdicContainer.resolve(ContainerToken_1.ModuleContainerToken.RsdTmcPointsRepository);
|
|
42
|
+
const primaryPointSpecificLocation = alertCLinearObj.alertCMethod2PrimaryPointLocation.alertCLocation.specificLocation;
|
|
43
|
+
const secondaryPointSpecificLocation = alertCLinearObj.alertCMethod2SecondaryPointLocation.alertCLocation.specificLocation;
|
|
44
|
+
const primaryPointObj = yield rsTmcRepository.GetOne(primaryPointSpecificLocation);
|
|
45
|
+
const secondaryPointObj = yield rsTmcRepository.GetOne(secondaryPointSpecificLocation);
|
|
46
|
+
if (primaryPointObj && secondaryPointObj) {
|
|
47
|
+
const coordinatesArr = [
|
|
48
|
+
[Number(primaryPointObj.wgs84_x.replace(",", ".")), Number(primaryPointObj.wgs84_y.replace(",", "."))],
|
|
49
|
+
[Number(secondaryPointObj.wgs84_x.replace(",", ".")), Number(secondaryPointObj.wgs84_y.replace(",", "."))],
|
|
50
|
+
];
|
|
51
|
+
return {
|
|
52
|
+
coordinates: coordinatesArr,
|
|
53
|
+
type: "LineString",
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return undefined;
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=TrafficRestrictionsHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrafficRestrictionsHelper.js","sourceRoot":"","sources":["../../../src/integration-engine/helpers/TrafficRestrictionsHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,0DAA8D;AAC9D,kCAA2C;AAK3C,MAAa,yBAAyB;;AAAtC,8DAiDC;;AAhDG,wBAAwB;AACV,iDAAuB,GAAG,CAAC,GAAgC,EAAE,EAAE;IACzE,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,SAAS,GAAgC,EAAE,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC,6BAA6B,CAAC,EAAE;YACvF,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC,6BAA6B,CAAC,CAAC;YACjF,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACvB;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAE,CAAA;AAEY,gEAAsC,GAAG,CACnD,eAA4C,EACR,EAAE;IACtC,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE;QACnC,OAAO,CAAC,iBAAiB,GAAG,MAAM,EAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;KACtF;IACD,OAAO,eAAe,CAAC;AAC3B,CAAC,CAAC,CAAA;AAEY,6CAAmB,GAAG,CAChC,eAAgD,EACjB,EAAE;IACjC,IAAI,CAAC,eAAe;QAAE,OAAO,SAAS,CAAC;IAEvC,MAAM,eAAe,GAAG,kBAAa,CAAC,OAAO,CAAoB,qCAAoB,CAAC,sBAAsB,CAAC,CAAC;IAC9G,MAAM,4BAA4B,GAAG,eAAe,CAAC,iCAAiC,CAAC,cAAc,CAAC,gBAAgB,CAAC;IACvH,MAAM,8BAA8B,GAChC,eAAe,CAAC,mCAAmC,CAAC,cAAc,CAAC,gBAAgB,CAAC;IAExF,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;IACnF,MAAM,iBAAiB,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;IAEvF,IAAI,eAAe,IAAI,iBAAiB,EAAE;QACtC,MAAM,cAAc,GAAe;YAC/B,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACtG,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;SAC7G,CAAC;QACF,OAAO;YACH,WAAW,EAAE,cAAc;YAC3B,IAAI,EAAE,YAAY;SACP,CAAC;KACnB;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC,CAAA"}
|
|
@@ -14,7 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.workers = void 0;
|
|
18
|
+
const NdicWorker_1 = require("./NdicWorker");
|
|
17
19
|
/* ie/index.ts */
|
|
18
|
-
__exportStar(require("./
|
|
20
|
+
__exportStar(require("./LegacyNdicWorker"), exports);
|
|
19
21
|
__exportStar(require("./queueDefinitions"), exports);
|
|
22
|
+
exports.workers = [NdicWorker_1.NdicWorker];
|
|
20
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA0C;AAE1C,iBAAiB;AACjB,qDAAmC;AACnC,qDAAmC;AAEtB,QAAA,OAAO,GAAG,CAAC,uBAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModuleContainerToken = void 0;
|
|
4
|
+
const ModuleContainerToken = {
|
|
5
|
+
RsdTmcPointsRepository: Symbol(),
|
|
6
|
+
};
|
|
7
|
+
exports.ModuleContainerToken = ModuleContainerToken;
|
|
8
|
+
//# sourceMappingURL=ContainerToken.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,sBAAsB,EAAE,MAAM,EAAE;CACnC,CAAC;AAEO,oDAAoB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NdicContainer = void 0;
|
|
4
|
+
const RsdTmcPointsModel_1 = require("../models/RsdTmcPointsModel");
|
|
5
|
+
const Di_1 = require("@golemio/core/dist/integration-engine/ioc/Di");
|
|
6
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
7
|
+
const ContainerToken_1 = require("./ContainerToken");
|
|
8
|
+
//#region Initialization
|
|
9
|
+
const NdicContainer = Di_1.IntegrationEngineContainer.createChildContainer();
|
|
10
|
+
exports.NdicContainer = NdicContainer;
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region Datasource
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region Transformation
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region Repositories
|
|
17
|
+
NdicContainer.register(ContainerToken_1.ModuleContainerToken.RsdTmcPointsRepository, RsdTmcPointsModel_1.RsdTmcPointsModel, { lifecycle: tsyringe_1.Lifecycle.Singleton });
|
|
18
|
+
//# sourceMappingURL=Di.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,mEAAiE;AACjE,qEAA0F;AAC1F,iEAAoF;AACpF,qDAAwD;AAExD,wBAAwB;AACxB,MAAM,aAAa,GAAwB,+BAA0B,CAAC,oBAAoB,EAAE,CAAC;AAgBpF,sCAAa;AAftB,YAAY;AAEZ,oBAAoB;AACpB,YAAY;AAEZ,wBAAwB;AACxB,YAAY;AAEZ,sBAAsB;AACtB,aAAa,CAAC,QAAQ,CAAC,qCAAoB,CAAC,sBAAsB,EAAE,qCAAiB,EAAE,EAAE,SAAS,EAAE,oBAAS,CAAC,SAAS,EAAE,CAAC,CAAC"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
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
|
+
};
|
|
2
11
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
12
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
13
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -13,7 +22,8 @@ exports.RsdTmcPointsModel = void 0;
|
|
|
13
22
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
14
23
|
const models_1 = require("@golemio/core/dist/output-gateway/models");
|
|
15
24
|
const _sch_1 = require("../../schema-definitions");
|
|
16
|
-
|
|
25
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
26
|
+
let RsdTmcPointsModel = class RsdTmcPointsModel extends models_1.SequelizeModel {
|
|
17
27
|
constructor() {
|
|
18
28
|
super(_sch_1.Ndic.rsd_tmc_points.name + "Model", _sch_1.Ndic.rsd_tmc_points.pgTableName, _sch_1.Ndic.rsd_tmc_points.outputSequelizeAttributes);
|
|
19
29
|
/**
|
|
@@ -29,7 +39,7 @@ class RsdTmcPointsModel extends models_1.SequelizeModel {
|
|
|
29
39
|
return rsdTmcPointsFromDB;
|
|
30
40
|
}
|
|
31
41
|
catch (err) {
|
|
32
|
-
throw new golemio_errors_1.
|
|
42
|
+
throw new golemio_errors_1.GeneralError("Database error", "rsdTmcPointsModel", err, 500);
|
|
33
43
|
}
|
|
34
44
|
});
|
|
35
45
|
this.GetOne = (lcdValue) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -37,6 +47,10 @@ class RsdTmcPointsModel extends models_1.SequelizeModel {
|
|
|
37
47
|
return objFromDb[0];
|
|
38
48
|
});
|
|
39
49
|
}
|
|
40
|
-
}
|
|
50
|
+
};
|
|
51
|
+
RsdTmcPointsModel = __decorate([
|
|
52
|
+
(0, tsyringe_1.injectable)(),
|
|
53
|
+
__metadata("design:paramtypes", [])
|
|
54
|
+
], RsdTmcPointsModel);
|
|
41
55
|
exports.RsdTmcPointsModel = RsdTmcPointsModel;
|
|
42
56
|
//# sourceMappingURL=RsdTmcPointsModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RsdTmcPointsModel.js","sourceRoot":"","sources":["../../../src/integration-engine/models/RsdTmcPointsModel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RsdTmcPointsModel.js","sourceRoot":"","sources":["../../../src/integration-engine/models/RsdTmcPointsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,6EAAwE;AACxE,qEAA0E;AAC1E,mDAA4B;AAC5B,iEAAgE;AAGhE,IAAa,iBAAiB,GAA9B,MAAa,iBAAkB,SAAQ,uBAAc;IACjD;QACI,KAAK,CAAC,WAAI,CAAC,cAAc,CAAC,IAAI,GAAG,OAAO,EAAE,WAAI,CAAC,cAAc,CAAC,WAAW,EAAE,WAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;QAG9H;;;WAGG;QAEI,WAAM,GAAG,CAAO,QAAgB,EAAgB,EAAE;YACrD,IAAI;gBACA,MAAM,kBAAkB,GAAU,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAChE,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE;iBAC3B,CAAC,CAAC;gBAEH,OAAO,kBAAkB,CAAC;aAC7B;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aAC3E;QACL,CAAC,CAAA,CAAC;QAEK,WAAM,GAAG,CAAO,QAAgB,EAAuB,EAAE;YAC5D,MAAM,SAAS,GAAU,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrD,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAA,CAAC;IAvBF,CAAC;CAwBJ,CAAA;AA3BY,iBAAiB;IAD7B,IAAA,qBAAU,GAAE;;GACA,iBAAiB,CA2B7B;AA3BY,8CAAiB"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.queueDefinitions = void 0;
|
|
4
4
|
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
5
5
|
const _sch_1 = require("../schema-definitions");
|
|
6
|
-
const
|
|
6
|
+
const LegacyNdicWorker_1 = require("./LegacyNdicWorker");
|
|
7
7
|
const queueDefinitions = [
|
|
8
8
|
{
|
|
9
9
|
name: _sch_1.Ndic.name,
|
|
@@ -16,7 +16,7 @@ const queueDefinitions = [
|
|
|
16
16
|
deadLetterRoutingKey: "dead",
|
|
17
17
|
messageTtl: 59 * 60 * 1000, // 59 minutes
|
|
18
18
|
},
|
|
19
|
-
worker:
|
|
19
|
+
worker: LegacyNdicWorker_1.LegacyNdicWorker,
|
|
20
20
|
workerMethod: "saveTrafficInfo",
|
|
21
21
|
},
|
|
22
22
|
],
|
|
@@ -32,7 +32,7 @@ const queueDefinitions = [
|
|
|
32
32
|
deadLetterRoutingKey: "dead",
|
|
33
33
|
messageTtl: 59 * 60 * 1000, // 59 minutes
|
|
34
34
|
},
|
|
35
|
-
worker:
|
|
35
|
+
worker: LegacyNdicWorker_1.LegacyNdicWorker,
|
|
36
36
|
workerMethod: "saveTrafficRestrictions",
|
|
37
37
|
},
|
|
38
38
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queueDefinitions.js","sourceRoot":"","sources":["../../src/integration-engine/queueDefinitions.ts"],"names":[],"mappings":";;;AAAA,8EAAiF;AACjF,gDAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"queueDefinitions.js","sourceRoot":"","sources":["../../src/integration-engine/queueDefinitions.ts"],"names":[],"mappings":";;;AAAA,8EAAiF;AACjF,gDAA4B;AAC5B,yDAAwD;AAExD,MAAM,gBAAgB,GAAuB;IACzC;QACI,IAAI,EAAE,WAAI,CAAC,IAAI;QACf,WAAW,EAAE,2BAAM,CAAC,oBAAoB,GAAG,GAAG,GAAG,WAAI,CAAC,IAAI,CAAC,WAAW,EAAE;QACxE,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE;oBACL,kBAAkB,EAAE,2BAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;oBAC5B,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;iBAC5C;gBACD,MAAM,EAAE,mCAAgB;gBACxB,YAAY,EAAE,iBAAiB;aAClC;SACJ;KACJ;IACD;QACI,IAAI,EAAE,WAAI,CAAC,IAAI;QACf,WAAW,EAAE,2BAAM,CAAC,oBAAoB,GAAG,GAAG,GAAG,WAAI,CAAC,IAAI,CAAC,WAAW,EAAE;QACxE,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE;oBACL,kBAAkB,EAAE,2BAAM,CAAC,oBAAoB;oBAC/C,oBAAoB,EAAE,MAAM;oBAC5B,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;iBAC5C;gBACD,MAAM,EAAE,mCAAgB;gBACxB,YAAY,EAAE,yBAAyB;aAC1C;SACJ;KACJ;CACJ,CAAC;AAEO,4CAAgB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine/workers/AbstractEmptyTask";
|
|
2
|
+
export declare class RegionsDataRetention extends AbstractEmptyTask {
|
|
3
|
+
queueName: string;
|
|
4
|
+
private DATA_RETENTION_IN_MINUTES;
|
|
5
|
+
protected execute(): Promise<void>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
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.RegionsDataRetention = void 0;
|
|
13
|
+
const _sch_1 = require("../../schema-definitions");
|
|
14
|
+
const connectors_1 = require("@golemio/core/dist/integration-engine/connectors");
|
|
15
|
+
const AbstractEmptyTask_1 = require("@golemio/core/dist/integration-engine/workers/AbstractEmptyTask");
|
|
16
|
+
const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
|
|
17
|
+
class RegionsDataRetention extends AbstractEmptyTask_1.AbstractEmptyTask {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.queueName = "regionsDataRetention";
|
|
21
|
+
this.DATA_RETENTION_IN_MINUTES = 2880; // 2 days
|
|
22
|
+
}
|
|
23
|
+
execute() {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
const sequelize = connectors_1.PostgresConnector.getConnection();
|
|
26
|
+
yield sequelize.query(`CALL ${_sch_1.Ndic.pgSchema}.regions_data_retention(${this.DATA_RETENTION_IN_MINUTES});`, {
|
|
27
|
+
plain: true,
|
|
28
|
+
type: sequelize_1.QueryTypes.SELECT,
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.RegionsDataRetention = RegionsDataRetention;
|
|
34
|
+
//# sourceMappingURL=RegionsDataRetention.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegionsDataRetention.js","sourceRoot":"","sources":["../../../src/integration-engine/tasks/RegionsDataRetention.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAA4B;AAC5B,iFAAqF;AACrF,uGAAoG;AACpG,mEAAiE;AAEjE,MAAa,oBAAqB,SAAQ,qCAAiB;IAA3D;;QACW,cAAS,GAAW,sBAAsB,CAAC;QAC1C,8BAAyB,GAAG,IAAI,CAAC,CAAC,SAAS;IASvD,CAAC;IAPmB,OAAO;;YACnB,MAAM,SAAS,GAAG,8BAAiB,CAAC,aAAa,EAAE,CAAC;YACpD,MAAM,SAAS,CAAC,KAAK,CAAC,QAAQ,WAAI,CAAC,QAAQ,2BAA2B,IAAI,CAAC,yBAAyB,IAAI,EAAE;gBACtG,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,sBAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;QACP,CAAC;KAAA;CACJ;AAXD,oDAWC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ITrafficRestrictions } from "../transformations/TrafficRestrictionsInterface";
|
|
2
|
+
import { AbstractTask } from "@golemio/core/dist/integration-engine";
|
|
3
|
+
import TrafficRestrictionsRegionsSchema from "./schema/TrafficRestrictionsRegionsSchema";
|
|
4
|
+
export declare class SaveTrafficRestrictionsRegions extends AbstractTask<ITrafficRestrictions> {
|
|
5
|
+
queueName: string;
|
|
6
|
+
queueTtl: number;
|
|
7
|
+
protected schema: typeof TrafficRestrictionsRegionsSchema;
|
|
8
|
+
private transformation;
|
|
9
|
+
private repository;
|
|
10
|
+
private filtrationChecker;
|
|
11
|
+
constructor(queuePrefix: string);
|
|
12
|
+
protected execute: (data: ITrafficRestrictions) => Promise<void>;
|
|
13
|
+
private filterData;
|
|
14
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.SaveTrafficRestrictionsRegions = void 0;
|
|
16
|
+
const LteCze90PointsChecker_1 = require("../helpers/LteCze90PointsChecker");
|
|
17
|
+
const TrafficRestrictionsHelper_1 = require("../helpers/TrafficRestrictionsHelper");
|
|
18
|
+
const TrafficRestrictionsTransformation_1 = require("../transformations/TrafficRestrictionsTransformation");
|
|
19
|
+
const _sch_1 = require("../../schema-definitions");
|
|
20
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
21
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
22
|
+
const TrafficRestrictionsRegionsSchema_1 = __importDefault(require("./schema/TrafficRestrictionsRegionsSchema"));
|
|
23
|
+
class SaveTrafficRestrictionsRegions extends integration_engine_1.AbstractTask {
|
|
24
|
+
constructor(queuePrefix) {
|
|
25
|
+
super(queuePrefix);
|
|
26
|
+
this.queueName = "saveTrafficRestrictionsRegions";
|
|
27
|
+
this.queueTtl = 24 * 60 * 60 * 1000; // 24h
|
|
28
|
+
this.schema = TrafficRestrictionsRegionsSchema_1.default; // Data already validated in Input Gateway
|
|
29
|
+
this.execute = (data) => __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
const transformedData = yield this.transformation.transform(data);
|
|
31
|
+
let dataToSave = yield this.filterData(transformedData);
|
|
32
|
+
dataToSave = yield TrafficRestrictionsHelper_1.TrafficRestrictionsHelper.populateWithGeomAlertCLineRestrictions(transformedData);
|
|
33
|
+
yield this.repository.save(TrafficRestrictionsHelper_1.TrafficRestrictionsHelper.uniqueRestrictionsArray(dataToSave));
|
|
34
|
+
});
|
|
35
|
+
this.filterData = (transformedData) => __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
yield this.filtrationChecker.initialize();
|
|
37
|
+
return transformedData.filter((element) => this.filtrationChecker.shouldSave(element));
|
|
38
|
+
});
|
|
39
|
+
this.transformation = new TrafficRestrictionsTransformation_1.TrafficRestrictionsTransformation();
|
|
40
|
+
this.repository = new integration_engine_1.PostgresModel(_sch_1.Ndic.traffic_restrictions.name + "Model", {
|
|
41
|
+
outputSequelizeAttributes: _sch_1.Ndic.traffic_restrictions.outputSequelizeAttributes,
|
|
42
|
+
pgSchema: _sch_1.Ndic.pgSchema,
|
|
43
|
+
pgTableName: "ndic_traffic_restrictions_regions",
|
|
44
|
+
savingType: "insertOnly",
|
|
45
|
+
}, new golemio_validator_1.JSONSchemaValidator(_sch_1.Ndic.traffic_restrictions.name + "PgModelValidator", _sch_1.Ndic.traffic_restrictions.outputSchema));
|
|
46
|
+
this.filtrationChecker = new LteCze90PointsChecker_1.LteCze90PointsChecker();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.SaveTrafficRestrictionsRegions = SaveTrafficRestrictionsRegions;
|
|
50
|
+
//# sourceMappingURL=SaveTrafficRestrictionsRegions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SaveTrafficRestrictionsRegions.js","sourceRoot":"","sources":["../../../src/integration-engine/tasks/SaveTrafficRestrictionsRegions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4EAA0E;AAC1E,oFAAkF;AAElF,4GAA0G;AAC1G,mDAA4B;AAC5B,8EAAoF;AACpF,mFAAkF;AAClF,iHAAyF;AAEzF,MAAa,8BAA+B,SAAQ,iCAAkC;IAQlF,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QARhB,cAAS,GAAW,gCAAgC,CAAC;QACrD,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM;QACnC,WAAM,GAAG,0CAAgC,CAAC,CAAC,0CAA0C;QAqBrF,YAAO,GAAG,CAAO,IAA0B,EAAiB,EAAE;YACpE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAElE,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YACxD,UAAU,GAAG,MAAM,qDAAyB,CAAC,sCAAsC,CAAC,eAAe,CAAC,CAAC;YAErG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qDAAyB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9F,CAAC,CAAA,CAAC;QAEM,eAAU,GAAG,CAAO,eAA4C,EAAE,EAAE;YACxE,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;YAE1C,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3F,CAAC,CAAA,CAAC;QA3BE,IAAI,CAAC,cAAc,GAAG,IAAI,qEAAiC,EAAE,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,IAAI,kCAAa,CAC/B,WAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,OAAO,EACxC;YACI,yBAAyB,EAAE,WAAI,CAAC,oBAAoB,CAAC,yBAAyB;YAC9E,QAAQ,EAAE,WAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,mCAAmC;YAChD,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,WAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,kBAAkB,EAAE,WAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CACvH,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,6CAAqB,EAAE,CAAC;IACzD,CAAC;CAgBJ;AAtCD,wEAsCC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ISituation, ITrafficRestrictions } from "../../transformations/TrafficRestrictionsInterface";
|
|
2
|
+
export default class TrafficRestrictionsRegionsSchema implements ITrafficRestrictions {
|
|
3
|
+
$: {
|
|
4
|
+
xmlns: string;
|
|
5
|
+
"xmlns:xsi": string;
|
|
6
|
+
modelBaseVersion: string;
|
|
7
|
+
};
|
|
8
|
+
exchange: Record<string, any>;
|
|
9
|
+
payloadPublication: {
|
|
10
|
+
$: {
|
|
11
|
+
"xsi:type": string;
|
|
12
|
+
lang: string;
|
|
13
|
+
};
|
|
14
|
+
publicationTime: string;
|
|
15
|
+
publicationCreator: Record<string, any>;
|
|
16
|
+
situation: ISituation | ISituation[];
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
|
|
13
|
+
//Just mockup schema. data are validated on IG side.
|
|
14
|
+
class TrafficRestrictionsRegionsSchema {
|
|
15
|
+
}
|
|
16
|
+
__decorate([
|
|
17
|
+
(0, class_validator_1.IsObject)(),
|
|
18
|
+
__metadata("design:type", Object)
|
|
19
|
+
], TrafficRestrictionsRegionsSchema.prototype, "$", void 0);
|
|
20
|
+
__decorate([
|
|
21
|
+
(0, class_validator_1.IsObject)(),
|
|
22
|
+
__metadata("design:type", Object)
|
|
23
|
+
], TrafficRestrictionsRegionsSchema.prototype, "exchange", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsObject)(),
|
|
26
|
+
__metadata("design:type", Object)
|
|
27
|
+
], TrafficRestrictionsRegionsSchema.prototype, "payloadPublication", void 0);
|
|
28
|
+
exports.default = TrafficRestrictionsRegionsSchema;
|
|
29
|
+
//# sourceMappingURL=TrafficRestrictionsRegionsSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrafficRestrictionsRegionsSchema.js","sourceRoot":"","sources":["../../../../src/integration-engine/tasks/schema/TrafficRestrictionsRegionsSchema.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,+EAAqE;AAErE,oDAAoD;AACpD,MAAqB,gCAAgC;CAgBpD;AAdG;IADC,IAAA,0BAAQ,GAAE;;2DAKT;AAEF;IADC,IAAA,0BAAQ,GAAE;;kEACoB;AAE/B;IADC,IAAA,0BAAQ,GAAE;;4EAMT;AAfN,mDAgBC"}
|
|
@@ -64,8 +64,8 @@ interface IPointByMultiCoordinates {
|
|
|
64
64
|
export interface IGlobalNetworkLinear {
|
|
65
65
|
networkVersion: Record<string, any>;
|
|
66
66
|
linearGeometryType: string;
|
|
67
|
-
startPoint
|
|
68
|
-
endPoint
|
|
67
|
+
startPoint?: IPointByMultiCoordinates;
|
|
68
|
+
endPoint?: IPointByMultiCoordinates;
|
|
69
69
|
linearWithinLinearGNElement: Record<string, any> | Array<Record<string, any>>;
|
|
70
70
|
}
|
|
71
71
|
interface ILatLonCoordinate {
|
|
@@ -88,10 +88,11 @@ class TrafficRestrictionsTransformation extends integration_engine_1.BaseTransfo
|
|
|
88
88
|
};
|
|
89
89
|
};
|
|
90
90
|
this.parseGeomGnLine = (globalNetworkLinear) => {
|
|
91
|
+
var _a, _b;
|
|
91
92
|
if (!globalNetworkLinear)
|
|
92
93
|
return undefined;
|
|
93
|
-
const startPointObj = globalNetworkLinear.startPoint.sjtskPointCoordinates;
|
|
94
|
-
const endPointObj = globalNetworkLinear.endPoint.sjtskPointCoordinates;
|
|
94
|
+
const startPointObj = (_a = globalNetworkLinear.startPoint) === null || _a === void 0 ? void 0 : _a.sjtskPointCoordinates;
|
|
95
|
+
const endPointObj = (_b = globalNetworkLinear.endPoint) === null || _b === void 0 ? void 0 : _b.sjtskPointCoordinates;
|
|
95
96
|
if (!startPointObj || !endPointObj)
|
|
96
97
|
return undefined;
|
|
97
98
|
let coordinatesArr = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrafficRestrictionsTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/TrafficRestrictionsTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAA4F;AAC5F,mDAA4B;AAY5B,iDAA6C;AAE7C,MAAa,iCAAkC,SAAQ,uCAAkB;IAGrE;QACI,KAAK,EAAE,CAAC;QAIL,cAAS,GAAG,CAAO,IAA0B,EAAwC,EAAE;YAC1F,MAAM,gBAAgB,GAAG;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,gBAAgB,EAAE,IAAI,CAAC,kBAAkB,CAAC,eAAe;gBACzD,mBAAmB,EAAE,IAAI,CAAC,kBAAkB,CAAC,kBAAkB;aAClE,CAAC;YAEF,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBAClE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBACrC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;YAExC,MAAM,MAAM,GAAgC,EAAE,CAAC;YAC/C,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE;gBAClC,MAAM,oBAAoB,GAAsB,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBACvF,MAAM,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iCAAM,gBAAgB,GAAK,EAAE,EAAG,CAAC,CAAC,CAAC;aACtF;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,CAAA,CAAC;QAEQ,qBAAgB,GAAG,CAAO,SAAqB,EAA8B,EAAE;YACrF,MAAM,aAAa,GAAG;gBAClB,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE;gBAC5B,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO;gBACtC,sBAAsB,EAAE,SAAS,CAAC,oBAAoB;gBACtD,yBAAyB,EAAE,SAAS,CAAC,iBAAiB,CAAC,eAAe;gBACtE,4BAA4B,EAAE,SAAS,CAAC,iBAAiB,CAAC,iBAAiB;gBAC3E,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,CAAC,OAAO;aACzD,CAAC;YAEF,MAAM,kBAAkB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC;gBAChE,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC;gBAC7B,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC;YAEhC,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,KAAK,MAAM,eAAe,IAAI,kBAAkB,EAAE;gBAC9C,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAA0C,CAAC,CAAC;gBACxG,MAAM,CAAC,IAAI,iCACJ,aAAa,GACb,qBAAqB,EAC1B,CAAC;aACN;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAA,CAAC;QAEM,8BAAyB,GAAG,CAAC,oBAAqD,EAAsB,EAAE;YAC9G,IAAI,CAAC,oBAAoB;gBAAE,OAAO,SAAS,CAAC;YAE5C,MAAM,uBAAuB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAErH,IAAI,oBAAoB,GAAG,EAAE,CAAC;YAE9B,KAAK,MAAM,uBAAuB,IAAI,uBAAuB,EAAE;gBAC3D,MAAM,MAAM,GAAU,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC;oBACxE,CAAC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC1C,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC7C,IAAI,oBAAoB,CAAC,MAAM,EAAE;oBAC7B,oBAAoB,IAAI,GAAG,CAAC;iBAC/B;gBACD,oBAAoB,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC9E;YACD,OAAO,oBAAoB,CAAC;QAChC,CAAC,CAAC;QAEM,yBAAoB,GAAG,CAAC,kBAA6C,EAAsB,EAAE;YACjG,OAAO,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,eAAe,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;QAClF,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAC1B,eAA6C,EACK,EAAE;YACpD,IAAI,CAAC,eAAe;gBAAE,OAAO,SAAS,CAAC;YAEvC,MAAM,+BAA+B,GAAU,CAAC,KAAK,CAAC,OAAO,CACzD,eAAe,CAAC,oBAAoB,CAAC,cAAc,CAAC,4BAA4B,CACnF;gBACG,CAAC,CAAC,CAAC,eAAe,CAAC,oBAAoB,CAAC,cAAc,CAAC,4BAA4B,CAAC;gBACpF,CAAC,CAAC,eAAe,CAAC,oBAAoB,CAAC,cAAc,CAAC,4BAA4B,CAAC;YAEvF,IAAI,cAAc,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAClE,OAAO,CAAC,gBAAgB,CAAC,SAAS;gBAClC,OAAO,CAAC,gBAAgB,CAAC,QAAQ;aACpC,CAAC,CAAC;YACH,IAAI,qBAAqB,GACrB,eAAe,CAAC,oBAAoB,CAAC,cAAc,CAAC,gCAAgC,CAAC,gBAAgB,CAAC;YAC1G,cAAc,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,SAAS,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEvF,OAAO;gBACH,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,YAAY;aACrB,CAAC;QACN,CAAC,CAAC;QAEM,oBAAe,GAAG,CACtB,mBAAqD,EACH,EAAE
|
|
1
|
+
{"version":3,"file":"TrafficRestrictionsTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/TrafficRestrictionsTransformation.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ class TrafficRouter extends BaseRouter_1.BaseRouter {
|
|
|
32
32
|
situationRecordType: req.query.situationRecordType,
|
|
33
33
|
});
|
|
34
34
|
if (!(dataFromDb === null || dataFromDb === void 0 ? void 0 : dataFromDb.length)) {
|
|
35
|
-
throw new golemio_errors_1.
|
|
35
|
+
throw new golemio_errors_1.GeneralError("No data found", "TrafficRouter", undefined, 404);
|
|
36
36
|
}
|
|
37
37
|
const transformedData = yield this.outputTrafficRestrictionsTransformation.transform(dataFromDb);
|
|
38
38
|
res.status(200).send(transformedData);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrafficRouter.js","sourceRoot":"","sources":["../../src/output-gateway/TrafficRouter.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mFAAoE;AACpE,
|
|
1
|
+
{"version":3,"file":"TrafficRouter.js","sourceRoot":"","sources":["../../src/output-gateway/TrafficRouter.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mFAAoE;AACpE,6EAAwE;AACxE,mEAA6E;AAC7E,oFAAiF;AACjF,6EAAkH;AAClH,qCAAoD;AACpD,uHAAsH;AACtH,gFAAyF;AAEzF,MAAa,aAAc,SAAQ,uBAAU;IACzC,YACc,wBAAkD,EACpD,uCAAgF;QAExF,KAAK,EAAE,CAAC;QAHE,6BAAwB,GAAxB,wBAAwB,CAA0B;QACpD,4CAAuC,GAAvC,uCAAuC,CAAyC;QAerF,2BAAsB,GAAG,CAAO,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YACtF,IAAI;gBACA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;oBAC1D,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;oBACrD,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;oBACxD,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,MAAgB;oBACrC,mBAAmB,EAAE,GAAG,CAAC,KAAK,CAAC,mBAA6B;iBAC/D,CAAC,CAAC;gBACH,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE;oBACrB,MAAM,IAAI,6BAAY,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;iBAC5E;gBACD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,uCAAuC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACjG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACzC;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAA,CAAC;QA3BE,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,eAAe,EACf,CAAC,IAAA,yBAAK,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,IAAA,yBAAK,EAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAC5F,uBAAU,EACV,wBAAW,EACX,IAAA,sCAAyB,EAAC,eAAe,CAAC,EAC1C,IAAA,0BAAkB,GAAE,EACpB,IAAI,CAAC,sBAAsB,CAC9B,CAAC;IACN,CAAC;CAmBJ;AAnCD,sCAmCC;AAED,MAAM,aAAa,GAAW,IAAI,aAAa,CAC3C,IAAI,iCAAwB,EAAE,EAC9B,IAAI,iFAAuC,CAAC,IAAI,2CAA0B,EAAE,CAAC,CAChF,CAAC,MAAM,CAAC;AAEA,sCAAa"}
|
|
@@ -20,7 +20,7 @@ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
|
20
20
|
const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
|
|
21
21
|
class TrafficRestrictionsModel extends models_1.SequelizeModel {
|
|
22
22
|
constructor() {
|
|
23
|
-
super(index_1.Ndic.traffic_restrictions.name,
|
|
23
|
+
super(index_1.Ndic.traffic_restrictions.name, "v_traffic_restrictions_all", index_1.Ndic.traffic_restrictions.outputSequelizeAttributes, {
|
|
24
24
|
schema: index_1.Ndic.pgSchema,
|
|
25
25
|
});
|
|
26
26
|
/**
|
|
@@ -48,7 +48,7 @@ class TrafficRestrictionsModel extends models_1.SequelizeModel {
|
|
|
48
48
|
situation_record_version_time desc) rn,
|
|
49
49
|
*
|
|
50
50
|
FROM
|
|
51
|
-
${index_1.Ndic.pgSchema}.
|
|
51
|
+
${index_1.Ndic.pgSchema}.v_traffic_restrictions_all
|
|
52
52
|
)
|
|
53
53
|
a
|
|
54
54
|
WHERE rn = 1
|
|
@@ -69,11 +69,11 @@ class TrafficRestrictionsModel extends models_1.SequelizeModel {
|
|
|
69
69
|
return trafficRestrictionsFromDB[0] || [];
|
|
70
70
|
}
|
|
71
71
|
catch (err) {
|
|
72
|
-
throw new golemio_errors_1.
|
|
72
|
+
throw new golemio_errors_1.GeneralError("Database error", "TrafficRestrictionsModel", err, 500);
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
75
|
this.GetOne = (id) => __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
throw new
|
|
76
|
+
throw new Error("Not implemented");
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrafficRestrictionsModel.js","sourceRoot":"","sources":["../../../src/output-gateway/models/TrafficRestrictionsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0DAAkC;AAClC,yEAAiF;AACjF,qEAA0E;AAC1E,
|
|
1
|
+
{"version":3,"file":"TrafficRestrictionsModel.js","sourceRoot":"","sources":["../../../src/output-gateway/models/TrafficRestrictionsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0DAAkC;AAClC,yEAAiF;AACjF,qEAA0E;AAC1E,6EAAwE;AACxE,gGAA+D;AAE/D,MAAa,wBAAyB,SAAQ,uBAAc;IACxD;QACI,KAAK,CAAC,YAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,4BAA4B,EAAE,YAAI,CAAC,oBAAoB,CAAC,yBAAyB,EAAE;YACrH,MAAM,EAAE,YAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QAGP;;;;;;;WAOG;QAEI,WAAM,GAAG,CACZ,UAKI,EAAE,EAC8B,EAAE;YACtC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;YAElE,IAAI;gBACA,kCAAkC;gBAClC,IAAI,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,yBAAM,GAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC;gBAEhF,2CAA2C;gBAC3C,8EAA8E;gBAE9E,IAAI,KAAK,GAAG;;;;;;;;;;sBAUF,YAAI,CAAC,QAAQ;;;;iDAIc,WAAW;+CACb,WAAW;;aAE7C,CAAC;gBAEF,IAAI,mBAAmB,EAAE;oBACrB,KAAK,IAAI,iCAAiC,mBAAmB,GAAG,CAAC;iBACpE;gBAED,IAAI,KAAK,EAAE;oBACP,KAAK,IAAI,UAAU,KAAK,EAAE,CAAC;iBAC9B;gBAED,IAAI,MAAM,EAAE;oBACR,KAAK,IAAI,WAAW,MAAM,EAAE,CAAC;iBAChC;gBAED,MAAM,yBAAyB,GAAG,CAAC,MAAM,CAAA,8BAAmB,aAAnB,8BAAmB,uBAAnB,8BAAmB,CAAE,KAAK,CAAC,KAAK,CAAC,CAAA,CAAkC,CAAC;gBAE7G,OAAO,yBAAyB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC7C;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aAClF;QACL,CAAC,CAAA,CAAC;QAEK,WAAM,GAAG,CAAO,EAAU,EAA0B,EAAE;YACzD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACvC,CAAC,CAAA,CAAC;IArEF,CAAC;CAsEJ;AA3ED,4DA2EC"}
|
|
@@ -62,7 +62,7 @@ Popis dat, jak nám jsou posíláná na input-gateway. Pokud je vystaveno více
|
|
|
62
62
|
|
|
63
63
|
Popis transformace a případného obohacení dat. Zaměřeno hlavně na workery a jejich metody.
|
|
64
64
|
|
|
65
|
-
### *
|
|
65
|
+
### *LegacyNdicWorker*
|
|
66
66
|
|
|
67
67
|
Worker slouží pro zpracování příchozích dat NdicTrafficInfo a NdicTrafficRestrictions.
|
|
68
68
|
|
|
@@ -96,6 +96,36 @@ Worker slouží pro zpracování příchozích dat NdicTrafficInfo a NdicTraffic
|
|
|
96
96
|
- data modely
|
|
97
97
|
- `ndicTrafficRestrictionsModel` se ukládá do tabulky ndic_traffic_restrictions
|
|
98
98
|
|
|
99
|
+
#### Task *SaveTrafficRestrictionsRegions*
|
|
100
|
+
|
|
101
|
+
- vstupní rabbitmq fronta
|
|
102
|
+
- `dataplatform.ndic.saveTrafficRestrictionsRegions`
|
|
103
|
+
- (volitelně) závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
|
|
104
|
+
- žádné
|
|
105
|
+
- datové zdroje
|
|
106
|
+
- `rsdTmcPointsModel` - pro zjištění geo souřadnic
|
|
107
|
+
- transformace
|
|
108
|
+
- [odkaz na transformaci dat](https://gitlab.com/operator-ict/golemio/code/modules/ndic/-/blob/master/src/integration-engine/transformations/TrafficRestrictionsTransformation.ts)
|
|
109
|
+
- (volitelně) obohacení dat
|
|
110
|
+
- stejné jako u předešlé metody *`saveTrafficInfo`*
|
|
111
|
+
- repository
|
|
112
|
+
- ukládá do tabulky `ndic_traffic_restrictions_regions`
|
|
113
|
+
- předpis stejný jako u saveTrafficRestrictions
|
|
114
|
+
- retence
|
|
115
|
+
- 48h
|
|
116
|
+
|
|
117
|
+
#### Task *RegionsDataRetention*
|
|
118
|
+
- spouští procedura `regions_data_retention` pro retenci dat v tabulce `ndic_traffic_restrictions_regions`.
|
|
119
|
+
- vstupní rabbitmq fronta
|
|
120
|
+
- `dataplatform.ndic.regionsDataRetention`
|
|
121
|
+
- (volitelně) závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
|
|
122
|
+
- žádné
|
|
123
|
+
- datové zdroje
|
|
124
|
+
- n/a
|
|
125
|
+
- transformace
|
|
126
|
+
- n/a
|
|
127
|
+
- (volitelně) obohacení dat
|
|
128
|
+
- n/a
|
|
99
129
|
|
|
100
130
|
## Uložení dat
|
|
101
131
|
|
|
@@ -107,7 +137,10 @@ Popis ukládání dat.
|
|
|
107
137
|
- PSQL
|
|
108
138
|
- datábázové schéma
|
|
109
139
|
- tabulka `ndic_traffic_info`
|
|
110
|
-
- tabulka `ndic_traffic_restrictions`
|
|
140
|
+
- tabulka `ndic_traffic_restrictions` (obsahuje kompletní informace z Hlavního města Prahy a Středočeského kraje)
|
|
141
|
+
- tabulka `ndic_traffic_restrictions_regions` (obsahuje časově omezené informace z regionů okolo Středočeského kraje)
|
|
142
|
+
- view `v_traffic_restrictions_all`
|
|
143
|
+
- procedura `regions_data_retention`
|
|
111
144
|

|
|
112
145
|
- retence dat
|
|
113
146
|
- n/a
|
|
@@ -145,13 +178,11 @@ Popis output-api.
|
|
|
145
178
|
- veřejné / neveřejné endpointy
|
|
146
179
|
- api je neveřejné, endpoint /restrictions je přístupný pro uživatele s rolí NDIC
|
|
147
180
|
- (volitelně) ACL
|
|
148
|
-
- postman kolekce
|
|
149
|
-
- TBD
|
|
150
181
|
|
|
151
182
|
#### */restrictions*
|
|
152
183
|
|
|
153
184
|
- zdrojové tabulky
|
|
154
|
-
- `ndic_traffic_restrictions`
|
|
185
|
+
- `v_traffic_restrictions_all` - view vzniklo spojením tabulek `ndic_traffic_restrictions` a `ndic_traffic_restrictions_regions`
|
|
155
186
|
- (volitlně) nestandardní dodatečná transformace
|
|
156
187
|
- vrací pouze poslední známe stavy ( max `situation_record_version_time` ) všech dopravních situací podle klíče `situation_record_id`, které jsou platné ve vybraný čas
|
|
157
188
|
- (volitelně) nestandardní url a query parametry
|
package/docs/ndic_erdiagram.png
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@golemio/ndic",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5-rc.884560595",
|
|
4
4
|
"description": "Golemio NDIC Module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"@commitlint/cli": "^11.0.0",
|
|
36
36
|
"@commitlint/config-conventional": "^11.0.0",
|
|
37
37
|
"@golemio/cli": "1.4.2",
|
|
38
|
-
"@golemio/core": "1.
|
|
38
|
+
"@golemio/core": "1.7.0",
|
|
39
39
|
"@golemio/db-common": "1.1.1",
|
|
40
40
|
"@golemio/eslint-config": "1.1.0",
|
|
41
|
-
"@golemio/traffic-common": "0.1.
|
|
41
|
+
"@golemio/traffic-common": "0.1.1",
|
|
42
42
|
"@ovos-media/ts-transform-paths": "^1.7.18-1",
|
|
43
43
|
"@types/body-parser-xml": "^1.1.0",
|
|
44
44
|
"@types/chai": "4.2.3",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"typescript": "4.6.4"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
73
|
-
"@golemio/core": ">=1.
|
|
74
|
-
"@golemio/traffic-common": "0.1.0"
|
|
73
|
+
"@golemio/core": ">=1.7.0",
|
|
74
|
+
"@golemio/traffic-common": ">=0.1.0"
|
|
75
75
|
}
|
|
76
76
|
}
|