@golemio/ndic 1.4.1-dev.1685774441 → 1.4.1-rc.1696552232
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/migrations/postgresql/20250220160454-optimize-traffic-restrictions.js +53 -0
- package/db/migrations/postgresql/sqls/20250220160454-optimize-traffic-restrictions-down.sql +5 -0
- package/db/migrations/postgresql/sqls/20250220160454-optimize-traffic-restrictions-up.sql +48 -0
- package/dist/input-gateway/AbstractTrafficRestrictionsController.js +4 -13
- package/dist/input-gateway/AbstractTrafficRestrictionsController.js.map +1 -1
- package/dist/input-gateway/NdicRouter.js +12 -21
- package/dist/input-gateway/NdicRouter.js.map +1 -1
- package/dist/input-gateway/TrafficInfoController.js +4 -13
- package/dist/input-gateway/TrafficInfoController.js.map +1 -1
- package/dist/integration-engine/LegacyNdicWorker.js +14 -23
- package/dist/integration-engine/LegacyNdicWorker.js.map +1 -1
- package/dist/integration-engine/helpers/LteCze90PointsChecker.js +4 -16
- package/dist/integration-engine/helpers/LteCze90PointsChecker.js.map +1 -1
- package/dist/integration-engine/helpers/OsmPathService.js +36 -48
- package/dist/integration-engine/helpers/OsmPathService.js.map +1 -1
- package/dist/integration-engine/helpers/TrafficRestrictionsHelper.js +7 -16
- package/dist/integration-engine/helpers/TrafficRestrictionsHelper.js.map +1 -1
- package/dist/integration-engine/models/RsdTmcPointsModel.js +6 -15
- package/dist/integration-engine/models/RsdTmcPointsModel.js.map +1 -1
- package/dist/integration-engine/repository/GlobalNetworkMappingRepository.js +61 -78
- package/dist/integration-engine/repository/GlobalNetworkMappingRepository.js.map +1 -1
- package/dist/integration-engine/tasks/RefreshGlobalNetworkDataTask.js +5 -16
- package/dist/integration-engine/tasks/RefreshGlobalNetworkDataTask.js.map +1 -1
- package/dist/integration-engine/tasks/RegionsDataRetention.js +5 -16
- package/dist/integration-engine/tasks/RegionsDataRetention.js.map +1 -1
- package/dist/integration-engine/tasks/SaveTrafficRestrictionsRegions.js +10 -19
- package/dist/integration-engine/tasks/SaveTrafficRestrictionsRegions.js.map +1 -1
- package/dist/integration-engine/transformations/TrafficInfoTransformation.js +37 -44
- package/dist/integration-engine/transformations/TrafficInfoTransformation.js.map +1 -1
- package/dist/integration-engine/transformations/TrafficRestrictionsTransformation.js +35 -43
- package/dist/integration-engine/transformations/TrafficRestrictionsTransformation.js.map +1 -1
- package/dist/output-gateway/TrafficRouter.js +5 -14
- package/dist/output-gateway/TrafficRouter.js.map +1 -1
- package/dist/output-gateway/models/TrafficRestrictionsModel.js +9 -31
- package/dist/output-gateway/models/TrafficRestrictionsModel.js.map +1 -1
- package/dist/output-gateway/transformations/OutputTrafficRestrictionsTransformation.js +93 -109
- package/dist/output-gateway/transformations/OutputTrafficRestrictionsTransformation.js.map +1 -1
- package/dist/schema-definitions/index.d.ts +0 -97
- package/dist/schema-definitions/schemas/traffic_info_datasource_schema.d.ts +0 -97
- package/dist/schema-definitions/schemas/traffic_info_datasource_schema.js +0 -67
- package/dist/schema-definitions/schemas/traffic_info_datasource_schema.js.map +1 -1
- package/package.json +3 -3
|
@@ -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', '20250220160454-optimize-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', '20250220160454-optimize-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,5 @@
|
|
|
1
|
+
drop function fetch_valid_traffic_restrictions(timestamptz);
|
|
2
|
+
drop index ndic_traffic_restrictions_regions_situation_record_id_idx;
|
|
3
|
+
drop index ndic_traffic_restrictions_situation_record_id_idx;
|
|
4
|
+
drop index ndic_traffic_restrictions_regions_validity_overall_time_idx;
|
|
5
|
+
drop index ndic_traffic_restrictions_validity_overall_time_idx;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
create or replace function fetch_valid_traffic_restrictions(validity_datetime timestamptz)
|
|
2
|
+
returns setof v_traffic_restrictions_all
|
|
3
|
+
language sql
|
|
4
|
+
set search_path from current
|
|
5
|
+
as $function$
|
|
6
|
+
select *
|
|
7
|
+
from (
|
|
8
|
+
select distinct on (situation_record_id) *
|
|
9
|
+
from v_traffic_restrictions_all
|
|
10
|
+
where situation_record_id in (
|
|
11
|
+
select distinct situation_record_id
|
|
12
|
+
from v_traffic_restrictions_all
|
|
13
|
+
where
|
|
14
|
+
validity_overall_start_time < validity_datetime
|
|
15
|
+
and validity_overall_end_time > validity_datetime
|
|
16
|
+
)
|
|
17
|
+
order by situation_record_id, situation_record_version_time desc
|
|
18
|
+
) tmp
|
|
19
|
+
where
|
|
20
|
+
tmp.validity_overall_start_time < validity_datetime
|
|
21
|
+
and tmp.validity_overall_end_time > validity_datetime
|
|
22
|
+
;
|
|
23
|
+
$function$
|
|
24
|
+
;
|
|
25
|
+
|
|
26
|
+
comment on function fetch_valid_traffic_restrictions(timestamptz) is E''
|
|
27
|
+
'Get all traffic restrictions (both from Prague and from regions) with'
|
|
28
|
+
' validity_overall_start_time < validity_datetime < validity_overall_end_time. Only one row per situation_record_id will be'
|
|
29
|
+
' returned - the one with the highest situation_record_version_time.'
|
|
30
|
+
;
|
|
31
|
+
|
|
32
|
+
create index ndic_traffic_restrictions_regions_situation_record_id_idx
|
|
33
|
+
on ndic_traffic_restrictions_regions
|
|
34
|
+
using hash (situation_record_id)
|
|
35
|
+
;
|
|
36
|
+
create index ndic_traffic_restrictions_situation_record_id_idx
|
|
37
|
+
on ndic_traffic_restrictions
|
|
38
|
+
using hash (situation_record_id)
|
|
39
|
+
;
|
|
40
|
+
|
|
41
|
+
create index ndic_traffic_restrictions_regions_validity_overall_time_idx
|
|
42
|
+
on ndic_traffic_restrictions_regions
|
|
43
|
+
using btree (validity_overall_start_time, validity_overall_end_time)
|
|
44
|
+
;
|
|
45
|
+
create index ndic_traffic_restrictions_validity_overall_time_idx
|
|
46
|
+
on ndic_traffic_restrictions
|
|
47
|
+
using btree (validity_overall_start_time, validity_overall_end_time)
|
|
48
|
+
;
|
|
@@ -1,13 +1,4 @@
|
|
|
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.AbstractTrafficRestrictionsController = void 0;
|
|
13
4
|
const _sch_1 = require("../schema-definitions");
|
|
@@ -16,10 +7,10 @@ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
|
16
7
|
class AbstractTrafficRestrictionsController extends input_gateway_1.BaseController {
|
|
17
8
|
constructor(validator) {
|
|
18
9
|
super(_sch_1.Ndic.name, validator);
|
|
19
|
-
this.processData = (data) =>
|
|
10
|
+
this.processData = async (data) => {
|
|
20
11
|
try {
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
await this.validator.Validate(data);
|
|
13
|
+
await this.sendMessageToExchange("input." + this.queuePrefix + "." + this.saveQueueKey, JSON.stringify(data.d2LogicalModel), {
|
|
23
14
|
persistent: true,
|
|
24
15
|
});
|
|
25
16
|
}
|
|
@@ -31,7 +22,7 @@ class AbstractTrafficRestrictionsController extends input_gateway_1.BaseControll
|
|
|
31
22
|
throw new golemio_errors_1.GeneralError("Error while validating input data.", this.name, err, 422);
|
|
32
23
|
}
|
|
33
24
|
}
|
|
34
|
-
}
|
|
25
|
+
};
|
|
35
26
|
}
|
|
36
27
|
}
|
|
37
28
|
exports.AbstractTrafficRestrictionsController = AbstractTrafficRestrictionsController;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractTrafficRestrictionsController.js","sourceRoot":"","sources":["../../src/input-gateway/AbstractTrafficRestrictionsController.ts"],"names":[],"mappings":"
|
|
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,KAAK,EAAE,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,CAAC;IApBF,CAAC;CAqBJ;AA1BD,sFA0BC"}
|
|
@@ -1,13 +1,4 @@
|
|
|
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.ndicRouter = void 0;
|
|
13
4
|
const TrafficInfoController_1 = require("./TrafficInfoController");
|
|
@@ -28,9 +19,9 @@ class NdicRouter {
|
|
|
28
19
|
this.router.post("/traffic-restrictions", (0, helpers_1.checkContentTypeMiddleware)(["text/xml", "application/xml"]), this.trafficRestrictionPrague);
|
|
29
20
|
this.router.post("/traffic-restrictions-regions", (0, helpers_1.checkContentTypeMiddleware)(["text/xml", "application/xml"]), this.trafficRestrictionRegions);
|
|
30
21
|
};
|
|
31
|
-
this.trafficInfo = (req, res, next) =>
|
|
22
|
+
this.trafficInfo = async (req, res, next) => {
|
|
32
23
|
try {
|
|
33
|
-
|
|
24
|
+
await this.trafficInfoController.processData(req.body);
|
|
34
25
|
const numberOfRecords = (JSON.stringify(req.body.d2LogicalModel.payloadPublication.situation || {}).match(/situationRecord/g) || []).length;
|
|
35
26
|
const metrics = {
|
|
36
27
|
numberOfRecords,
|
|
@@ -42,16 +33,16 @@ class NdicRouter {
|
|
|
42
33
|
catch (err) {
|
|
43
34
|
next(err);
|
|
44
35
|
}
|
|
45
|
-
}
|
|
46
|
-
this.trafficRestrictionPrague = (req, res, next) =>
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
this.trafficRestrictionRegions = (req, res, next) =>
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
this.trafficRestriction = (controller, req, res, next) =>
|
|
36
|
+
};
|
|
37
|
+
this.trafficRestrictionPrague = async (req, res, next) => {
|
|
38
|
+
await this.trafficRestriction(this.trafficRestrictionsPragueController, req, res, next);
|
|
39
|
+
};
|
|
40
|
+
this.trafficRestrictionRegions = async (req, res, next) => {
|
|
41
|
+
await this.trafficRestriction(this.trafficRestrictionsRegionsController, req, res, next);
|
|
42
|
+
};
|
|
43
|
+
this.trafficRestriction = async (controller, req, res, next) => {
|
|
53
44
|
try {
|
|
54
|
-
|
|
45
|
+
await controller.processData(req.body);
|
|
55
46
|
const numberOfRecords = (JSON.stringify(req.body.d2LogicalModel.payloadPublication.situation || {}).match(/situationRecord/g) || []).length;
|
|
56
47
|
const metrics = {
|
|
57
48
|
numberOfRecords,
|
|
@@ -63,7 +54,7 @@ class NdicRouter {
|
|
|
63
54
|
catch (err) {
|
|
64
55
|
next(err);
|
|
65
56
|
}
|
|
66
|
-
}
|
|
57
|
+
};
|
|
67
58
|
this.loggerEmitter = ioc_1.InputGatewayContainer.resolve(ioc_1.ContainerToken.LoggerEmitter);
|
|
68
59
|
this.initRoutes();
|
|
69
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NdicRouter.js","sourceRoot":"","sources":["../../src/input-gateway/NdicRouter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NdicRouter.js","sourceRoot":"","sources":["../../src/input-gateway/NdicRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
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.TrafficInfoController = void 0;
|
|
13
4
|
const input_gateway_1 = require("@golemio/core/dist/input-gateway");
|
|
@@ -17,10 +8,10 @@ const _sch_1 = require("../schema-definitions");
|
|
|
17
8
|
class TrafficInfoController extends input_gateway_1.BaseController {
|
|
18
9
|
constructor() {
|
|
19
10
|
super(_sch_1.Ndic.name, new golemio_validator_1.JSONSchemaValidator(_sch_1.Ndic.traffic_info.name, _sch_1.Ndic.traffic_info.datasourceSchema));
|
|
20
|
-
this.processData = (data) =>
|
|
11
|
+
this.processData = async (data) => {
|
|
21
12
|
try {
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
await this.validator.Validate(data);
|
|
14
|
+
await this.sendMessageToExchange("input." + this.queuePrefix + ".saveTrafficInfo", JSON.stringify(data.d2LogicalModel), {
|
|
24
15
|
persistent: true,
|
|
25
16
|
});
|
|
26
17
|
}
|
|
@@ -32,7 +23,7 @@ class TrafficInfoController extends input_gateway_1.BaseController {
|
|
|
32
23
|
throw new golemio_errors_1.GeneralError("Error while validating input data.", this.name, err, 422);
|
|
33
24
|
}
|
|
34
25
|
}
|
|
35
|
-
}
|
|
26
|
+
};
|
|
36
27
|
}
|
|
37
28
|
}
|
|
38
29
|
exports.TrafficInfoController = TrafficInfoController;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrafficInfoController.js","sourceRoot":"","sources":["../../src/input-gateway/TrafficInfoController.ts"],"names":[],"mappings":"
|
|
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,KAAK,EAAE,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,CAAC;IApBF,CAAC;CAqBJ;AAxBD,sDAwBC"}
|
|
@@ -1,13 +1,4 @@
|
|
|
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.LegacyNdicWorker = void 0;
|
|
13
4
|
const TrafficInfoTransformation_1 = require("./transformations/TrafficInfoTransformation");
|
|
@@ -21,20 +12,20 @@ const Di_1 = require("./ioc/Di");
|
|
|
21
12
|
class LegacyNdicWorker extends integration_engine_1.BaseWorker {
|
|
22
13
|
constructor() {
|
|
23
14
|
super();
|
|
24
|
-
this.saveTrafficInfo = (msg) =>
|
|
15
|
+
this.saveTrafficInfo = async (msg) => {
|
|
25
16
|
const data = JSON.parse(msg.content.toString());
|
|
26
|
-
const transformedData =
|
|
27
|
-
const dataToSave =
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
this.saveTrafficRestrictions = (msg) =>
|
|
17
|
+
const transformedData = await this.ndicTrafficInfoTransformation.transform(data);
|
|
18
|
+
const dataToSave = await this.populateWithGeomAlertCLineInfo(transformedData);
|
|
19
|
+
await this.ndicTrafficInfoModel.save(this.uniqueInfoArray(dataToSave));
|
|
20
|
+
};
|
|
21
|
+
this.saveTrafficRestrictions = async (msg) => {
|
|
31
22
|
const osmPathService = Di_1.NdicContainer.resolve(ContainerToken_1.ModuleContainerToken.OsmPathService);
|
|
32
23
|
const data = JSON.parse(msg.content.toString());
|
|
33
|
-
const transformedData =
|
|
34
|
-
let dataToSave =
|
|
35
|
-
dataToSave =
|
|
36
|
-
|
|
37
|
-
}
|
|
24
|
+
const transformedData = await this.ndicTrafficRestrictionsTransformation.transform(data);
|
|
25
|
+
let dataToSave = await TrafficRestrictionsHelper_1.TrafficRestrictionsHelper.populateWithGeomAlertCLineRestrictions(transformedData);
|
|
26
|
+
dataToSave = await osmPathService.addOsmPath(dataToSave);
|
|
27
|
+
await this.ndicTrafficRestrictionsModel.save(TrafficRestrictionsHelper_1.TrafficRestrictionsHelper.uniqueRestrictionsArray(dataToSave));
|
|
28
|
+
};
|
|
38
29
|
this.uniqueInfoArray = (arr) => {
|
|
39
30
|
const constraintsArr = [];
|
|
40
31
|
const resultArr = [];
|
|
@@ -46,12 +37,12 @@ class LegacyNdicWorker extends integration_engine_1.BaseWorker {
|
|
|
46
37
|
}
|
|
47
38
|
return resultArr;
|
|
48
39
|
};
|
|
49
|
-
this.populateWithGeomAlertCLineInfo = (transformedData) =>
|
|
40
|
+
this.populateWithGeomAlertCLineInfo = async (transformedData) => {
|
|
50
41
|
for (const dataObj of transformedData) {
|
|
51
|
-
dataObj.geom_alert_c_line =
|
|
42
|
+
dataObj.geom_alert_c_line = await TrafficRestrictionsHelper_1.TrafficRestrictionsHelper.parseGeomAlertCLine(dataObj.alert_c_linear);
|
|
52
43
|
}
|
|
53
44
|
return transformedData;
|
|
54
|
-
}
|
|
45
|
+
};
|
|
55
46
|
this.queuePrefix = integration_engine_1.config.RABBIT_EXCHANGE_NAME + "." + _sch_1.Ndic.name.toLowerCase();
|
|
56
47
|
this.ndicTrafficInfoTransformation = new TrafficInfoTransformation_1.TrafficInfoTransformation();
|
|
57
48
|
this.ndicTrafficRestrictionsTransformation = new TrafficRestrictionsTransformation_1.TrafficRestrictionsTransformation();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegacyNdicWorker.js","sourceRoot":"","sources":["../../src/integration-engine/LegacyNdicWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LegacyNdicWorker.js","sourceRoot":"","sources":["../../src/integration-engine/LegacyNdicWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
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.LteCze90PointsChecker = void 0;
|
|
13
4
|
const Di_1 = require("@golemio/traffic-common/dist/integration-engine/ioc/Di");
|
|
@@ -17,15 +8,12 @@ class LteCze90PointsChecker {
|
|
|
17
8
|
this.relevantLcds = [];
|
|
18
9
|
this.filtrationLookup = Di_1.TrafficCommonContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.LteCze90PointsSjtskInAreaRepository);
|
|
19
10
|
}
|
|
20
|
-
initialize() {
|
|
21
|
-
|
|
22
|
-
this.relevantLcds = (yield this.filtrationLookup.getFiltrationData()).map((element) => element.lcd);
|
|
23
|
-
});
|
|
11
|
+
async initialize() {
|
|
12
|
+
this.relevantLcds = (await this.filtrationLookup.getFiltrationData()).map((element) => element.lcd);
|
|
24
13
|
}
|
|
25
14
|
shouldSave(input) {
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
const secondaryPointSpecificLocation = (_b = input.alert_c_linear) === null || _b === void 0 ? void 0 : _b.alertCMethod2SecondaryPointLocation.alertCLocation.specificLocation;
|
|
15
|
+
const primaryPointSpecificLocation = input.alert_c_linear?.alertCMethod2PrimaryPointLocation.alertCLocation.specificLocation;
|
|
16
|
+
const secondaryPointSpecificLocation = input.alert_c_linear?.alertCMethod2SecondaryPointLocation.alertCLocation.specificLocation;
|
|
29
17
|
if (primaryPointSpecificLocation === undefined ||
|
|
30
18
|
primaryPointSpecificLocation === null ||
|
|
31
19
|
secondaryPointSpecificLocation === undefined ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LteCze90PointsChecker.js","sourceRoot":"","sources":["../../../src/integration-engine/helpers/LteCze90PointsChecker.ts"],"names":[],"mappings":"
|
|
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;IAEM,KAAK,CAAC,UAAU;QACnB,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;IACxG,CAAC;IAEM,UAAU,CAAC,KAAgC;QAC9C,MAAM,4BAA4B,GAC9B,KAAK,CAAC,cAAc,EAAE,iCAAiC,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAC5F,MAAM,8BAA8B,GAChC,KAAK,CAAC,cAAc,EAAE,mCAAmC,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAE9F,IACI,4BAA4B,KAAK,SAAS;YAC1C,4BAA4B,KAAK,IAAI;YACrC,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"}
|
|
@@ -8,15 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
12
|
exports.OsmPathService = void 0;
|
|
22
13
|
const GlobalNetworkMappingRepository_1 = require("../repository/GlobalNetworkMappingRepository");
|
|
@@ -29,51 +20,48 @@ let OsmPathService = exports.OsmPathService = class OsmPathService {
|
|
|
29
20
|
this.rsdTmcOsmMappingRepository = rsdTmcOsmMappingRepository;
|
|
30
21
|
this.logger = logger;
|
|
31
22
|
}
|
|
32
|
-
addOsmPath(transformedData) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
// handles special case for freeway ramps
|
|
43
|
-
ltStart = ltEnd;
|
|
44
|
-
}
|
|
45
|
-
else if (ltEnd === "0") {
|
|
46
|
-
ltEnd = ltStart;
|
|
47
|
-
}
|
|
48
|
-
const osmPath = yield this.rsdTmcOsmMappingRepository.GetOne({
|
|
49
|
-
ltStart: Number(ltStart),
|
|
50
|
-
ltEnd: Number(ltEnd),
|
|
51
|
-
});
|
|
52
|
-
record.osm_path = osmPath ? [osmPath] : undefined;
|
|
23
|
+
async addOsmPath(transformedData) {
|
|
24
|
+
for (let index = 0; index < transformedData.length; index++) {
|
|
25
|
+
const record = transformedData[index];
|
|
26
|
+
try {
|
|
27
|
+
if (record.alert_c_linear) {
|
|
28
|
+
let ltStart = record.alert_c_linear?.alertCMethod2SecondaryPointLocation.alertCLocation.specificLocation || null;
|
|
29
|
+
let ltEnd = record.alert_c_linear?.alertCMethod2PrimaryPointLocation.alertCLocation.specificLocation || null;
|
|
30
|
+
if (ltStart === "0") {
|
|
31
|
+
// handles special case for freeway ramps
|
|
32
|
+
ltStart = ltEnd;
|
|
53
33
|
}
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
// global_network_linear, currently we do not differentiate between positive and negative direction
|
|
57
|
-
const result = yield this.globalNetworkMappingRepository.findAll(roadIds);
|
|
58
|
-
record.osm_path = result.map((element) => element.osm_path.split(",").map((text) => +text));
|
|
59
|
-
if (record.osm_path.length === 0) {
|
|
60
|
-
record.osm_path = undefined;
|
|
61
|
-
}
|
|
34
|
+
else if (ltEnd === "0") {
|
|
35
|
+
ltEnd = ltStart;
|
|
62
36
|
}
|
|
37
|
+
const osmPath = await this.rsdTmcOsmMappingRepository.GetOne({
|
|
38
|
+
ltStart: Number(ltStart),
|
|
39
|
+
ltEnd: Number(ltEnd),
|
|
40
|
+
});
|
|
41
|
+
record.osm_path = osmPath ? [osmPath] : undefined;
|
|
63
42
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
`Error while adding OSM path to the record ${record.situation_record_id} ${record.situation_version_time}`, this.constructor.name, error));
|
|
43
|
+
if (!record.osm_path && record.global_network_linear) {
|
|
44
|
+
const roadIds = this.getGlobalNetworkSectionIds(record);
|
|
45
|
+
// global_network_linear, currently we do not differentiate between positive and negative direction
|
|
46
|
+
const result = await this.globalNetworkMappingRepository.findAll(roadIds);
|
|
47
|
+
record.osm_path = result.map((element) => element.osm_path.split(",").map((text) => +text));
|
|
48
|
+
if (record.osm_path.length === 0) {
|
|
49
|
+
record.osm_path = undefined;
|
|
72
50
|
}
|
|
73
51
|
}
|
|
74
52
|
}
|
|
75
|
-
|
|
76
|
-
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (error instanceof golemio_errors_1.AbstractGolemioError) {
|
|
55
|
+
this.logger.warn(error);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.logger.warn(new golemio_errors_1.GeneralError(
|
|
59
|
+
// eslint-disable-next-line max-len
|
|
60
|
+
`Error while adding OSM path to the record ${record.situation_record_id} ${record.situation_version_time}`, this.constructor.name, error));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return transformedData;
|
|
77
65
|
}
|
|
78
66
|
getGlobalNetworkSectionIds(record) {
|
|
79
67
|
// if array
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OsmPathService.js","sourceRoot":"","sources":["../../../src/integration-engine/helpers/OsmPathService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OsmPathService.js","sourceRoot":"","sources":["../../../src/integration-engine/helpers/OsmPathService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
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
|
var _a;
|
|
12
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
4
|
exports.TrafficRestrictionsHelper = void 0;
|
|
@@ -29,20 +20,20 @@ TrafficRestrictionsHelper.uniqueRestrictionsArray = (arr) => {
|
|
|
29
20
|
}
|
|
30
21
|
return resultArr;
|
|
31
22
|
};
|
|
32
|
-
TrafficRestrictionsHelper.populateWithGeomAlertCLineRestrictions = (transformedData) =>
|
|
23
|
+
TrafficRestrictionsHelper.populateWithGeomAlertCLineRestrictions = async (transformedData) => {
|
|
33
24
|
for (const dataObj of transformedData) {
|
|
34
|
-
dataObj.geom_alert_c_line =
|
|
25
|
+
dataObj.geom_alert_c_line = await _a.parseGeomAlertCLine(dataObj.alert_c_linear);
|
|
35
26
|
}
|
|
36
27
|
return transformedData;
|
|
37
|
-
}
|
|
38
|
-
TrafficRestrictionsHelper.parseGeomAlertCLine = (alertCLinearObj) =>
|
|
28
|
+
};
|
|
29
|
+
TrafficRestrictionsHelper.parseGeomAlertCLine = async (alertCLinearObj) => {
|
|
39
30
|
if (!alertCLinearObj)
|
|
40
31
|
return undefined;
|
|
41
32
|
const rsTmcRepository = Di_1.NdicContainer.resolve(ContainerToken_1.ModuleContainerToken.RsdTmcPointsRepository);
|
|
42
33
|
const primaryPointSpecificLocation = alertCLinearObj.alertCMethod2PrimaryPointLocation.alertCLocation.specificLocation;
|
|
43
34
|
const secondaryPointSpecificLocation = alertCLinearObj.alertCMethod2SecondaryPointLocation.alertCLocation.specificLocation;
|
|
44
|
-
const primaryPointObj =
|
|
45
|
-
const secondaryPointObj =
|
|
35
|
+
const primaryPointObj = await rsTmcRepository.GetOne(primaryPointSpecificLocation);
|
|
36
|
+
const secondaryPointObj = await rsTmcRepository.GetOne(secondaryPointSpecificLocation);
|
|
46
37
|
if (primaryPointObj && secondaryPointObj) {
|
|
47
38
|
const coordinatesArr = [
|
|
48
39
|
[Number(primaryPointObj.wgs84_x.replace(",", ".")), Number(primaryPointObj.wgs84_y.replace(",", "."))],
|
|
@@ -54,5 +45,5 @@ TrafficRestrictionsHelper.parseGeomAlertCLine = (alertCLinearObj) => __awaiter(v
|
|
|
54
45
|
};
|
|
55
46
|
}
|
|
56
47
|
return undefined;
|
|
57
|
-
}
|
|
48
|
+
};
|
|
58
49
|
//# sourceMappingURL=TrafficRestrictionsHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrafficRestrictionsHelper.js","sourceRoot":"","sources":["../../../src/integration-engine/helpers/TrafficRestrictionsHelper.ts"],"names":[],"mappings":"
|
|
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,CAAC,AAVoC,CAUnC;AAEY,gEAAsC,GAAG,KAAK,EACxD,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,AAPmD,CAOlD;AAEY,6CAAmB,GAAG,KAAK,EACrC,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,AAxBgC,CAwB/B"}
|
|
@@ -8,15 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
12
|
exports.RsdTmcPointsModel = void 0;
|
|
22
13
|
const _sch_1 = require("../../schema-definitions");
|
|
@@ -39,9 +30,9 @@ let RsdTmcPointsModel = exports.RsdTmcPointsModel = class RsdTmcPointsModel exte
|
|
|
39
30
|
* @param {number} lcdValue Options object with params
|
|
40
31
|
* @returns Array of the retrieved records
|
|
41
32
|
*/
|
|
42
|
-
this.GetAll = (lcdValue) =>
|
|
33
|
+
this.GetAll = async (lcdValue) => {
|
|
43
34
|
try {
|
|
44
|
-
const rsdTmcPointsFromDB =
|
|
35
|
+
const rsdTmcPointsFromDB = await this.sequelizeModel.findAll({
|
|
45
36
|
raw: true,
|
|
46
37
|
where: { lcd: lcdValue },
|
|
47
38
|
});
|
|
@@ -50,11 +41,11 @@ let RsdTmcPointsModel = exports.RsdTmcPointsModel = class RsdTmcPointsModel exte
|
|
|
50
41
|
catch (err) {
|
|
51
42
|
throw new golemio_errors_1.GeneralError("Database error", "rsdTmcPointsModel", err, 500);
|
|
52
43
|
}
|
|
53
|
-
}
|
|
54
|
-
this.GetOne = (lcdValue) =>
|
|
55
|
-
const objFromDb =
|
|
44
|
+
};
|
|
45
|
+
this.GetOne = async (lcdValue) => {
|
|
46
|
+
const objFromDb = await this.GetAll(lcdValue);
|
|
56
47
|
return objFromDb[0];
|
|
57
|
-
}
|
|
48
|
+
};
|
|
58
49
|
}
|
|
59
50
|
};
|
|
60
51
|
exports.RsdTmcPointsModel = RsdTmcPointsModel = __decorate([
|