@golemio/ndic 1.2.10-dev.1391640506 → 1.2.11-dev.1443171003
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/02_sql_dump.sql +15 -15
- package/db/migrations/postgresql/20240830092002-global-network-osm-mapping.js +53 -0
- package/db/migrations/postgresql/sqls/20210702010000-ndic-add-geoms-down.sql +21 -21
- package/db/migrations/postgresql/sqls/20210702010000-ndic-add-geoms-up.sql +21 -21
- package/db/migrations/postgresql/sqls/20240830092002-global-network-osm-mapping-down.sql +12 -0
- package/db/migrations/postgresql/sqls/20240830092002-global-network-osm-mapping-up.sql +15 -0
- package/dist/integration-engine/LegacyNdicWorker.js +5 -1
- package/dist/integration-engine/LegacyNdicWorker.js.map +1 -1
- package/dist/integration-engine/NdicWorker.js +4 -2
- package/dist/integration-engine/NdicWorker.js.map +1 -1
- package/dist/integration-engine/datasources/GlobalNetworkMapperDataSource.d.ts +7 -0
- package/dist/integration-engine/datasources/GlobalNetworkMapperDataSource.js +34 -0
- package/dist/integration-engine/datasources/GlobalNetworkMapperDataSource.js.map +1 -0
- package/dist/integration-engine/helpers/OsmPathService.d.ts +12 -0
- package/dist/integration-engine/helpers/OsmPathService.js +92 -0
- package/dist/integration-engine/helpers/OsmPathService.js.map +1 -0
- package/dist/integration-engine/ioc/ContainerToken.d.ts +3 -0
- package/dist/integration-engine/ioc/ContainerToken.js +3 -0
- package/dist/integration-engine/ioc/ContainerToken.js.map +1 -1
- package/dist/integration-engine/ioc/Di.js +18 -0
- package/dist/integration-engine/ioc/Di.js.map +1 -1
- package/dist/integration-engine/repository/GlobalNetworkMappingRepository.d.ts +18 -0
- package/dist/integration-engine/repository/GlobalNetworkMappingRepository.js +132 -0
- package/dist/integration-engine/repository/GlobalNetworkMappingRepository.js.map +1 -0
- package/dist/integration-engine/tasks/RefreshGlobalNetworkDataTask.d.ts +7 -0
- package/dist/integration-engine/tasks/RefreshGlobalNetworkDataTask.js +32 -0
- package/dist/integration-engine/tasks/RefreshGlobalNetworkDataTask.js.map +1 -0
- package/dist/integration-engine/tasks/SaveTrafficRestrictionsRegions.d.ts +1 -0
- package/dist/integration-engine/tasks/SaveTrafficRestrictionsRegions.js +4 -0
- package/dist/integration-engine/tasks/SaveTrafficRestrictionsRegions.js.map +1 -1
- package/dist/integration-engine/transformations/TrafficRestrictionsInterface.d.ts +3 -2
- package/dist/output-gateway/ioc/ContainerToken.d.ts +2 -0
- package/dist/output-gateway/ioc/ContainerToken.js +6 -0
- package/dist/output-gateway/ioc/ContainerToken.js.map +1 -0
- package/dist/output-gateway/models/TrafficRestrictionsModel.js +0 -1
- package/dist/output-gateway/models/TrafficRestrictionsModel.js.map +1 -1
- package/dist/output-gateway/transformations/OutputTrafficRestrictionsTransformation.d.ts +1 -1
- package/dist/output-gateway/transformations/OutputTrafficRestrictionsTransformation.js +14 -8
- package/dist/output-gateway/transformations/OutputTrafficRestrictionsTransformation.js.map +1 -1
- package/dist/schema-definitions/index.d.ts +2129 -1
- package/dist/schema-definitions/index.js +2 -2
- package/dist/schema-definitions/index.js.map +1 -1
- package/dist/schema-definitions/schemas/interfaces/IGlobalNetworkOsmMapping.d.ts +5 -0
- package/dist/schema-definitions/schemas/interfaces/IGlobalNetworkOsmMapping.js +3 -0
- package/dist/schema-definitions/schemas/interfaces/IGlobalNetworkOsmMapping.js.map +1 -0
- package/dist/schema-definitions/schemas/models/GlobalNetworkOsmMapping.d.ts +11 -0
- package/dist/schema-definitions/schemas/models/GlobalNetworkOsmMapping.js +27 -0
- package/dist/schema-definitions/schemas/models/GlobalNetworkOsmMapping.js.map +1 -0
- package/dist/schema-definitions/schemas/traffic_restrictions_output_schema.d.ts +3 -0
- package/dist/schema-definitions/schemas/traffic_restrictions_output_schema.js +3 -0
- package/dist/schema-definitions/schemas/traffic_restrictions_output_schema.js.map +1 -1
- package/docs/implementation_documentation.md +11 -0
- package/docs/index.md +3 -0
- package/package.json +7 -3
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.OsmPathService = void 0;
|
|
22
|
+
const GlobalNetworkMappingRepository_1 = require("../repository/GlobalNetworkMappingRepository");
|
|
23
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
24
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
25
|
+
const RsdTmcOsmMappingRepository_1 = require("@golemio/traffic-common/dist/integration-engine/repositories/RsdTmcOsmMappingRepository");
|
|
26
|
+
let OsmPathService = exports.OsmPathService = class OsmPathService {
|
|
27
|
+
constructor(globalNetworkMappingRepository, rsdTmcOsmMappingRepository, logger) {
|
|
28
|
+
this.globalNetworkMappingRepository = globalNetworkMappingRepository;
|
|
29
|
+
this.rsdTmcOsmMappingRepository = rsdTmcOsmMappingRepository;
|
|
30
|
+
this.logger = logger;
|
|
31
|
+
}
|
|
32
|
+
addOsmPath(transformedData) {
|
|
33
|
+
var _a, _b;
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
for (let index = 0; index < transformedData.length; index++) {
|
|
36
|
+
const record = transformedData[index];
|
|
37
|
+
try {
|
|
38
|
+
if (record.alert_c_linear) {
|
|
39
|
+
let ltStart = ((_a = record.alert_c_linear) === null || _a === void 0 ? void 0 : _a.alertCMethod2SecondaryPointLocation.alertCLocation.specificLocation) || null;
|
|
40
|
+
let ltEnd = ((_b = record.alert_c_linear) === null || _b === void 0 ? void 0 : _b.alertCMethod2PrimaryPointLocation.alertCLocation.specificLocation) || null;
|
|
41
|
+
if (ltStart === "0") {
|
|
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;
|
|
53
|
+
}
|
|
54
|
+
if (!record.osm_path && record.global_network_linear) {
|
|
55
|
+
const roadIds = this.getGlobalNetworkSectionIds(record);
|
|
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
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
if (error instanceof golemio_errors_1.AbstractGolemioError) {
|
|
66
|
+
this.logger.warn(error);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
this.logger.warn(new golemio_errors_1.GeneralError(
|
|
70
|
+
// eslint-disable-next-line max-len
|
|
71
|
+
`Error while adding OSM path to the record ${record.situation_record_id} ${record.situation_version_time}`, this.constructor.name, error));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return transformedData;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
getGlobalNetworkSectionIds(record) {
|
|
79
|
+
// if array
|
|
80
|
+
if (Array.isArray(record.global_network_linear.linearWithinLinearGNElement)) {
|
|
81
|
+
return record.global_network_linear.linearWithinLinearGNElement.map((element) => element.sectionId);
|
|
82
|
+
}
|
|
83
|
+
// if object
|
|
84
|
+
return [record.global_network_linear.linearWithinLinearGNElement.sectionId];
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
exports.OsmPathService = OsmPathService = __decorate([
|
|
88
|
+
(0, tsyringe_1.injectable)(),
|
|
89
|
+
__metadata("design:paramtypes", [GlobalNetworkMappingRepository_1.GlobalNetworkMappingRepository,
|
|
90
|
+
RsdTmcOsmMappingRepository_1.RsdTmcOsmMappingRepository, Object])
|
|
91
|
+
], OsmPathService);
|
|
92
|
+
//# sourceMappingURL=OsmPathService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OsmPathService.js","sourceRoot":"","sources":["../../../src/integration-engine/helpers/OsmPathService.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ModuleContainerToken = void 0;
|
|
4
4
|
const ModuleContainerToken = {
|
|
5
|
+
GlobalNetworkMapperDataSource: Symbol(),
|
|
5
6
|
RsdTmcPointsRepository: Symbol(),
|
|
7
|
+
GlobalNetworkMappingRepository: Symbol(),
|
|
8
|
+
OsmPathService: Symbol(),
|
|
6
9
|
};
|
|
7
10
|
exports.ModuleContainerToken = ModuleContainerToken;
|
|
8
11
|
//# sourceMappingURL=ContainerToken.js.map
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"ContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,6BAA6B,EAAE,MAAM,EAAE;IACvC,sBAAsB,EAAE,MAAM,EAAE;IAChC,8BAA8B,EAAE,MAAM,EAAE;IACxC,cAAc,EAAE,MAAM,EAAE;CAC3B,CAAC;AAEO,oDAAoB"}
|
|
@@ -1,18 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NdicContainer = void 0;
|
|
4
|
+
const GlobalNetworkMapperDataSource_1 = require("../datasources/GlobalNetworkMapperDataSource");
|
|
5
|
+
const OsmPathService_1 = require("../helpers/OsmPathService");
|
|
4
6
|
const RsdTmcPointsModel_1 = require("../models/RsdTmcPointsModel");
|
|
7
|
+
const GlobalNetworkMappingRepository_1 = require("../repository/GlobalNetworkMappingRepository");
|
|
8
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
5
9
|
const Di_1 = require("@golemio/core/dist/integration-engine/ioc/Di");
|
|
6
10
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
11
|
+
const RsdTmcOsmMappingRepository_1 = require("@golemio/traffic-common/dist/integration-engine/repositories/RsdTmcOsmMappingRepository");
|
|
7
12
|
const ContainerToken_1 = require("./ContainerToken");
|
|
8
13
|
//#region Initialization
|
|
9
14
|
const NdicContainer = Di_1.IntegrationEngineContainer.createChildContainer();
|
|
10
15
|
exports.NdicContainer = NdicContainer;
|
|
11
16
|
//#endregion
|
|
12
17
|
//#region Datasource
|
|
18
|
+
NdicContainer.register(ContainerToken_1.ModuleContainerToken.GlobalNetworkMapperDataSource, GlobalNetworkMapperDataSource_1.GlobalNetworkMapperDataSource, {
|
|
19
|
+
lifecycle: tsyringe_1.Lifecycle.Transient,
|
|
20
|
+
});
|
|
13
21
|
//#endregion
|
|
14
22
|
//#region Transformation
|
|
15
23
|
//#endregion
|
|
16
24
|
//#region Repositories
|
|
17
25
|
NdicContainer.register(ContainerToken_1.ModuleContainerToken.RsdTmcPointsRepository, RsdTmcPointsModel_1.RsdTmcPointsModel, { lifecycle: tsyringe_1.Lifecycle.Singleton });
|
|
26
|
+
NdicContainer.register(ContainerToken_1.ModuleContainerToken.GlobalNetworkMappingRepository, GlobalNetworkMappingRepository_1.GlobalNetworkMappingRepository, {
|
|
27
|
+
lifecycle: tsyringe_1.Lifecycle.Singleton,
|
|
28
|
+
});
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region Services
|
|
31
|
+
NdicContainer.register(ContainerToken_1.ModuleContainerToken.OsmPathService, {
|
|
32
|
+
useFactory: (0, tsyringe_1.instanceCachingFactory)((c) => {
|
|
33
|
+
return new OsmPathService_1.OsmPathService(c.resolve(ContainerToken_1.ModuleContainerToken.GlobalNetworkMappingRepository), new RsdTmcOsmMappingRepository_1.RsdTmcOsmMappingRepository(c.resolve(CoreToken_1.CoreToken.PostgresConnector), c.resolve(CoreToken_1.CoreToken.Logger)), c.resolve(CoreToken_1.CoreToken.Logger));
|
|
34
|
+
}),
|
|
35
|
+
});
|
|
18
36
|
//# sourceMappingURL=Di.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,mEAAiE;AACjE,qEAA0F;AAC1F,
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,gGAA8F;AAC9F,8DAA4D;AAC5D,mEAAiE;AACjE,iGAA+F;AAG/F,wEAAqE;AACrE,qEAA0F;AAC1F,iEAA4G;AAC5G,wIAAqI;AACrI,qDAAwD;AAExD,wBAAwB;AACxB,MAAM,aAAa,GAAwB,+BAA0B,CAAC,oBAAoB,EAAE,CAAC;AAqCpF,sCAAa;AApCtB,YAAY;AAEZ,oBAAoB;AACpB,aAAa,CAAC,QAAQ,CAAC,qCAAoB,CAAC,6BAA6B,EAAE,6DAA6B,EAAE;IACtG,SAAS,EAAE,oBAAS,CAAC,SAAS;CACjC,CAAC,CAAC;AACH,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;AAC3H,aAAa,CAAC,QAAQ,CAAC,qCAAoB,CAAC,8BAA8B,EAAE,+DAA8B,EAAE;IACxG,SAAS,EAAE,oBAAS,CAAC,SAAS;CACjC,CAAC,CAAC;AACH,YAAY;AAEZ,kBAAkB;AAClB,aAAa,CAAC,QAAQ,CAAC,qCAAoB,CAAC,cAAc,EAAE;IACxD,UAAU,EAAE,IAAA,iCAAsB,EAAC,CAAC,CAAC,EAAE,EAAE;QACrC,OAAO,IAAI,+BAAc,CACrB,CAAC,CAAC,OAAO,CAAC,qCAAoB,CAAC,8BAA8B,CAAC,EAC9D,IAAI,uDAA0B,CAC1B,CAAC,CAAC,OAAO,CAAqB,qBAAS,CAAC,iBAAiB,CAAC,EAC1D,CAAC,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CACvC,EACD,CAAC,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,CACvC,CAAC;IACN,CAAC,CAAC;CACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IGlobalNetworkOsmMapping } from "../../schema-definitions/schemas/interfaces/IGlobalNetworkOsmMapping";
|
|
3
|
+
import { GlobalNetworkOsmMappingModel } from "../../schema-definitions/schemas/models/GlobalNetworkOsmMapping";
|
|
4
|
+
import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
|
|
5
|
+
import { AbstractBasicRepository } from "@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractBasicRepository";
|
|
6
|
+
import { ILogger } from "@golemio/core/dist/helpers/logger/LoggerProvider";
|
|
7
|
+
import { ModelStatic } from "@golemio/core/dist/shared/sequelize";
|
|
8
|
+
import { Readable } from "stream";
|
|
9
|
+
export declare class GlobalNetworkMappingRepository extends AbstractBasicRepository {
|
|
10
|
+
schema: string;
|
|
11
|
+
tableName: string;
|
|
12
|
+
model: ModelStatic<GlobalNetworkOsmMappingModel>;
|
|
13
|
+
constructor(connector: IDatabaseConnector, logger: ILogger);
|
|
14
|
+
streamData(data: Readable): Promise<void>;
|
|
15
|
+
findAll(roadIds: string[]): Promise<IGlobalNetworkOsmMapping[]>;
|
|
16
|
+
private streamDataToTmp;
|
|
17
|
+
private cleanAfterError;
|
|
18
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.GlobalNetworkMappingRepository = void 0;
|
|
25
|
+
const _sch_1 = require("../../schema-definitions");
|
|
26
|
+
const GlobalNetworkOsmMapping_1 = require("../../schema-definitions/schemas/models/GlobalNetworkOsmMapping");
|
|
27
|
+
const AbstractBasicRepository_1 = require("@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractBasicRepository");
|
|
28
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
29
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
30
|
+
const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
|
|
31
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
32
|
+
const pg_copy_streams_1 = require("pg-copy-streams");
|
|
33
|
+
let GlobalNetworkMappingRepository = exports.GlobalNetworkMappingRepository = class GlobalNetworkMappingRepository extends AbstractBasicRepository_1.AbstractBasicRepository {
|
|
34
|
+
constructor(connector, logger) {
|
|
35
|
+
super(connector, logger);
|
|
36
|
+
this.schema = _sch_1.Ndic.pgSchema;
|
|
37
|
+
this.tableName = GlobalNetworkOsmMapping_1.GlobalNetworkOsmMappingModel.TABLE_NAME;
|
|
38
|
+
this.model = GlobalNetworkOsmMapping_1.GlobalNetworkOsmMappingModel.init(GlobalNetworkOsmMapping_1.GlobalNetworkOsmMappingModel.attributeModel, {
|
|
39
|
+
tableName: this.tableName,
|
|
40
|
+
schema: this.schema,
|
|
41
|
+
sequelize: this.connector.getConnection(),
|
|
42
|
+
timestamps: false,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
streamData(data) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const connection = this.connector.getConnection();
|
|
48
|
+
const tableIdentifier = `"${this.schema}"."${this.tableName}"`;
|
|
49
|
+
const tmpTableIdentifier = `"${this.schema}"."${this.tableName}_tmp"`;
|
|
50
|
+
try {
|
|
51
|
+
yield connection.query(`DROP TABLE IF EXISTS ${tmpTableIdentifier};`, {
|
|
52
|
+
plain: true,
|
|
53
|
+
type: sequelize_1.QueryTypes.RAW,
|
|
54
|
+
});
|
|
55
|
+
yield connection.query(`CREATE TABLE ${tmpTableIdentifier} (LIKE ${tableIdentifier} INCLUDING ALL);`, {
|
|
56
|
+
plain: true,
|
|
57
|
+
type: sequelize_1.QueryTypes.RAW,
|
|
58
|
+
});
|
|
59
|
+
yield this.streamDataToTmp(tmpTableIdentifier, data);
|
|
60
|
+
const oldTableIdentifier = `"${this.schema}"."${this.tableName}_old"`;
|
|
61
|
+
yield connection.query(`begin;
|
|
62
|
+
alter table ${tableIdentifier} rename to ${this.tableName}_old;
|
|
63
|
+
alter table ${tmpTableIdentifier} rename to ${this.tableName};
|
|
64
|
+
end;`, {
|
|
65
|
+
plain: true,
|
|
66
|
+
type: sequelize_1.QueryTypes.RAW,
|
|
67
|
+
});
|
|
68
|
+
yield connection.query(`DROP TABLE IF EXISTS ${oldTableIdentifier};`, {
|
|
69
|
+
plain: true,
|
|
70
|
+
type: sequelize_1.QueryTypes.RAW,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
this.cleanAfterError(connection, tmpTableIdentifier);
|
|
75
|
+
throw new golemio_errors_1.GeneralError(`Error during streaming data: ${err.toString()}`, this.constructor.name, err);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
findAll(roadIds) {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
return this.model.findAll({
|
|
82
|
+
where: {
|
|
83
|
+
road_id: roadIds,
|
|
84
|
+
},
|
|
85
|
+
raw: true,
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
streamDataToTmp(tableName, data) {
|
|
90
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
const connection = this.connector.getConnection();
|
|
92
|
+
const client = yield connection.connectionManager.getConnection({ type: "write" });
|
|
93
|
+
// copy transformed data to tmp table by stream
|
|
94
|
+
yield new Promise((resolve, reject) => {
|
|
95
|
+
const stream = client
|
|
96
|
+
.query((0, pg_copy_streams_1.from)(`COPY ${tableName}
|
|
97
|
+
FROM STDIN DELIMITER ',' CSV HEADER;`))
|
|
98
|
+
.on("error", (err) => __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
this.log.error(`Copying data error (${this.constructor.name}): ${err.toString()}`);
|
|
100
|
+
yield connection.connectionManager.releaseConnection(client);
|
|
101
|
+
return reject(err);
|
|
102
|
+
}))
|
|
103
|
+
.on("finish", () => __awaiter(this, void 0, void 0, function* () {
|
|
104
|
+
this.log.info(`Done copying data (${this.constructor.name})`);
|
|
105
|
+
yield connection.connectionManager.releaseConnection(client);
|
|
106
|
+
return resolve();
|
|
107
|
+
}));
|
|
108
|
+
data.pipe(stream);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
cleanAfterError(connection, tmpTableIdentifier) {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
try {
|
|
115
|
+
yield connection.query(`DROP TABLE IF EXISTS ${tmpTableIdentifier};`, {
|
|
116
|
+
plain: true,
|
|
117
|
+
type: sequelize_1.QueryTypes.RAW,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
this.log.error(new golemio_errors_1.GeneralError(`Error during cleaning after error: ${err.toString()}`, this.constructor.name, err));
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
exports.GlobalNetworkMappingRepository = GlobalNetworkMappingRepository = __decorate([
|
|
127
|
+
(0, tsyringe_1.injectable)(),
|
|
128
|
+
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
|
|
129
|
+
__param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
130
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
131
|
+
], GlobalNetworkMappingRepository);
|
|
132
|
+
//# sourceMappingURL=GlobalNetworkMappingRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalNetworkMappingRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repository/GlobalNetworkMappingRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine/workers/AbstractEmptyTask";
|
|
2
|
+
export declare class RefreshGlobalNetworkDataTask extends AbstractEmptyTask {
|
|
3
|
+
queueName: string;
|
|
4
|
+
private repository;
|
|
5
|
+
constructor(queuePrefix: string);
|
|
6
|
+
protected execute(): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
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.RefreshGlobalNetworkDataTask = void 0;
|
|
13
|
+
const ContainerToken_1 = require("../ioc/ContainerToken");
|
|
14
|
+
const Di_1 = require("../ioc/Di");
|
|
15
|
+
const AbstractEmptyTask_1 = require("@golemio/core/dist/integration-engine/workers/AbstractEmptyTask");
|
|
16
|
+
class RefreshGlobalNetworkDataTask extends AbstractEmptyTask_1.AbstractEmptyTask {
|
|
17
|
+
constructor(queuePrefix) {
|
|
18
|
+
super(queuePrefix);
|
|
19
|
+
this.queueName = "refreshGlobalNetworkData";
|
|
20
|
+
this.repository = Di_1.NdicContainer.resolve(ContainerToken_1.ModuleContainerToken.GlobalNetworkMappingRepository);
|
|
21
|
+
}
|
|
22
|
+
execute() {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const datasource = Di_1.NdicContainer.resolve(ContainerToken_1.ModuleContainerToken.GlobalNetworkMapperDataSource).datasource;
|
|
25
|
+
let dataStream;
|
|
26
|
+
dataStream = yield datasource.getRawData();
|
|
27
|
+
yield this.repository.streamData(dataStream.data);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.RefreshGlobalNetworkDataTask = RefreshGlobalNetworkDataTask;
|
|
32
|
+
//# sourceMappingURL=RefreshGlobalNetworkDataTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RefreshGlobalNetworkDataTask.js","sourceRoot":"","sources":["../../../src/integration-engine/tasks/RefreshGlobalNetworkDataTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,0DAA8D;AAC9D,kCAA2C;AAE3C,uGAAoG;AAGpG,MAAa,4BAA6B,SAAQ,qCAAiB;IAI/D,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAJhB,cAAS,GAAW,0BAA0B,CAAC;QAKlD,IAAI,CAAC,UAAU,GAAG,kBAAa,CAAC,OAAO,CACnC,qCAAoB,CAAC,8BAA8B,CACtD,CAAC;IACN,CAAC;IAEe,OAAO;;YACnB,MAAM,UAAU,GAAG,kBAAa,CAAC,OAAO,CACpC,qCAAoB,CAAC,6BAA6B,CACrD,CAAC,UAAU,CAAC;YAEb,IAAI,UAA8B,CAAC;YAEnC,UAAU,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC;KAAA;CACJ;AArBD,oEAqBC"}
|
|
@@ -8,6 +8,7 @@ export declare class SaveTrafficRestrictionsRegions extends AbstractTask<ITraffi
|
|
|
8
8
|
private transformation;
|
|
9
9
|
private repository;
|
|
10
10
|
private filtrationChecker;
|
|
11
|
+
private osmPathService;
|
|
11
12
|
constructor(queuePrefix: string);
|
|
12
13
|
protected execute: (data: ITrafficRestrictions) => Promise<void>;
|
|
13
14
|
private filterData;
|
|
@@ -15,6 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.SaveTrafficRestrictionsRegions = void 0;
|
|
16
16
|
const LteCze90PointsChecker_1 = require("../helpers/LteCze90PointsChecker");
|
|
17
17
|
const TrafficRestrictionsHelper_1 = require("../helpers/TrafficRestrictionsHelper");
|
|
18
|
+
const ContainerToken_1 = require("../ioc/ContainerToken");
|
|
19
|
+
const Di_1 = require("../ioc/Di");
|
|
18
20
|
const TrafficRestrictionsTransformation_1 = require("../transformations/TrafficRestrictionsTransformation");
|
|
19
21
|
const _sch_1 = require("../../schema-definitions");
|
|
20
22
|
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
@@ -30,6 +32,7 @@ class SaveTrafficRestrictionsRegions extends integration_engine_1.AbstractTask {
|
|
|
30
32
|
const transformedData = yield this.transformation.transform(data);
|
|
31
33
|
let dataToSave = yield this.filterData(transformedData);
|
|
32
34
|
dataToSave = yield TrafficRestrictionsHelper_1.TrafficRestrictionsHelper.populateWithGeomAlertCLineRestrictions(dataToSave);
|
|
35
|
+
dataToSave = yield this.osmPathService.addOsmPath(dataToSave);
|
|
33
36
|
yield this.repository.save(TrafficRestrictionsHelper_1.TrafficRestrictionsHelper.uniqueRestrictionsArray(dataToSave));
|
|
34
37
|
});
|
|
35
38
|
this.filterData = (transformedData) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -44,6 +47,7 @@ class SaveTrafficRestrictionsRegions extends integration_engine_1.AbstractTask {
|
|
|
44
47
|
savingType: "insertOnly",
|
|
45
48
|
}, new golemio_validator_1.JSONSchemaValidator(_sch_1.Ndic.traffic_restrictions.name + "PgModelValidator", _sch_1.Ndic.traffic_restrictions.outputSchema));
|
|
46
49
|
this.filtrationChecker = new LteCze90PointsChecker_1.LteCze90PointsChecker();
|
|
50
|
+
this.osmPathService = Di_1.NdicContainer.resolve(ContainerToken_1.ModuleContainerToken.OsmPathService);
|
|
47
51
|
}
|
|
48
52
|
}
|
|
49
53
|
exports.SaveTrafficRestrictionsRegions = SaveTrafficRestrictionsRegions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveTrafficRestrictionsRegions.js","sourceRoot":"","sources":["../../../src/integration-engine/tasks/SaveTrafficRestrictionsRegions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4EAA0E;
|
|
1
|
+
{"version":3,"file":"SaveTrafficRestrictionsRegions.js","sourceRoot":"","sources":["../../../src/integration-engine/tasks/SaveTrafficRestrictionsRegions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4EAA0E;AAE1E,oFAAkF;AAClF,0DAA8D;AAC9D,kCAA2C;AAE3C,4GAA0G;AAC1G,mDAA4B;AAC5B,8EAAoF;AACpF,mFAAkF;AAClF,iHAAyF;AAEzF,MAAa,8BAA+B,SAAQ,iCAAkC;IASlF,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAThB,cAAS,GAAW,gCAAgC,CAAC;QACrD,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM;QACnC,WAAM,GAAG,0CAAgC,CAAC,CAAC,0CAA0C;QAuBrF,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,UAAU,CAAC,CAAC;YAChG,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAE9D,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;QA7BE,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;QACrD,IAAI,CAAC,cAAc,GAAG,kBAAa,CAAC,OAAO,CAAiB,qCAAoB,CAAC,cAAc,CAAC,CAAC;IACrG,CAAC;CAiBJ;AAzCD,wEAyCC"}
|
|
@@ -115,7 +115,7 @@ export interface IOutputApiSituationRecord {
|
|
|
115
115
|
sourceName?: string;
|
|
116
116
|
impact: Record<string, any>;
|
|
117
117
|
forVehiclesWithCharacteristicsOf?: Record<string, any> | Array<Record<string, any>>;
|
|
118
|
-
alertCLinear
|
|
118
|
+
alertCLinear?: {
|
|
119
119
|
type: string | null;
|
|
120
120
|
alertCLocationCountryCode: string | null;
|
|
121
121
|
alertCLocationTableNumber: string | null;
|
|
@@ -134,7 +134,7 @@ export interface IOutputApiSituationRecord {
|
|
|
134
134
|
};
|
|
135
135
|
};
|
|
136
136
|
};
|
|
137
|
-
osmPath?: number[];
|
|
137
|
+
osmPath?: number[][];
|
|
138
138
|
}
|
|
139
139
|
export declare enum OutputApiSituationRecordType {
|
|
140
140
|
ConstructionWorks = "CONSTRUCTION_WORKS",
|
|
@@ -363,6 +363,7 @@ export interface ISituationRecordLocationModel {
|
|
|
363
363
|
linear_within_linear_element?: Record<string, any>;
|
|
364
364
|
global_network_linear?: Record<string, any>;
|
|
365
365
|
linear_extension?: Record<string, any>;
|
|
366
|
+
osm_path?: number[][];
|
|
366
367
|
}
|
|
367
368
|
export interface ISituationRecordModel extends ISituationRecordLocationModel {
|
|
368
369
|
situation_record_id: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContainerToken.js","sourceRoot":"","sources":["../../../src/output-gateway/ioc/ContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvB,oDAAoB"}
|
|
@@ -51,7 +51,6 @@ class TrafficRestrictionsModel extends models_1.SequelizeModel {
|
|
|
51
51
|
WHERE rn = 1
|
|
52
52
|
AND validity_overall_start_time < '${queryMoment}'
|
|
53
53
|
AND validity_overall_end_time > '${queryMoment}'
|
|
54
|
-
AND alert_c_linear IS NOT NULL
|
|
55
54
|
`;
|
|
56
55
|
if (situationRecordType) {
|
|
57
56
|
query += ` AND situation_record_type = '${situationRecordType}'`;
|
|
@@ -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,6EAAwE;AACxE,wDAAsD;AAEtD,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,kBAAQ,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;gBAE1G,2CAA2C;gBAC3C,8EAA8E;gBAE9E,IAAI,KAAK,GAAG;;;;;;;;;;sBAUF,YAAI,CAAC,QAAQ;;;;iDAIc,WAAW;+CACb,WAAW
|
|
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,wDAAsD;AAEtD,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,kBAAQ,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;gBAE1G,2CAA2C;gBAC3C,8EAA8E;gBAE9E,IAAI,KAAK,GAAG;;;;;;;;;;sBAUF,YAAI,CAAC,QAAQ;;;;iDAIc,WAAW;+CACb,WAAW;aAC7C,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;IApEF,CAAC;CAqEJ;AA1ED,4DA0EC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IOutputApiRestrictions, ITrafficRestrictionsModel, OutputApiSituationRecordType } from "../../integration-engine/transformations/TrafficRestrictionsInterface";
|
|
2
2
|
import { RsdTmcOsmMappingRepository } from "@golemio/traffic-common/dist/output-gateway";
|
|
3
3
|
export declare class OutputTrafficRestrictionsTransformation {
|
|
4
4
|
name: string;
|
|
@@ -10,9 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.OutputTrafficRestrictionsTransformation = void 0;
|
|
13
|
-
const _sch_1 = require("../../schema-definitions");
|
|
14
|
-
const TrafficRestrictionsInterface_1 = require("../../integration-engine/transformations/TrafficRestrictionsInterface");
|
|
15
13
|
const ParserHelper_1 = require("../../integration-engine/transformations/ParserHelper");
|
|
14
|
+
const TrafficRestrictionsInterface_1 = require("../../integration-engine/transformations/TrafficRestrictionsInterface");
|
|
15
|
+
const _sch_1 = require("../../schema-definitions");
|
|
16
16
|
const helpers_1 = require("@golemio/core/dist/helpers");
|
|
17
17
|
class OutputTrafficRestrictionsTransformation {
|
|
18
18
|
constructor(rsdTmcOsmMappingRepository) {
|
|
@@ -80,13 +80,13 @@ class OutputTrafficRestrictionsTransformation {
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
transformRecordsArr(oneSituationArr) {
|
|
83
|
-
var _a, _b, _c, _d, _e, _f, _g
|
|
83
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
84
84
|
return __awaiter(this, void 0, void 0, function* () {
|
|
85
85
|
const resultRecordsArr = [];
|
|
86
86
|
for (const record of oneSituationArr) {
|
|
87
87
|
const ltStart = ((_a = record.alert_c_linear) === null || _a === void 0 ? void 0 : _a.alertCMethod2SecondaryPointLocation.alertCLocation.specificLocation) || null;
|
|
88
88
|
const ltEnd = ((_b = record.alert_c_linear) === null || _b === void 0 ? void 0 : _b.alertCMethod2PrimaryPointLocation.alertCLocation.specificLocation) || null;
|
|
89
|
-
|
|
89
|
+
const newLine = {
|
|
90
90
|
id: record.situation_record_id,
|
|
91
91
|
situationRecordCreationTime: (0, helpers_1.dateTime)(record.situation_record_creation_time)
|
|
92
92
|
.setTimeZone("Europe/Prague")
|
|
@@ -115,7 +115,9 @@ class OutputTrafficRestrictionsTransformation {
|
|
|
115
115
|
capacityRemaining: record.impact_capacity_remaining,
|
|
116
116
|
},
|
|
117
117
|
forVehiclesWithCharacteristicsOf: record.for_vehicles_with_characteristics_of || undefined,
|
|
118
|
-
|
|
118
|
+
};
|
|
119
|
+
if (record.alert_c_linear) {
|
|
120
|
+
newLine.alertCLinear = {
|
|
119
121
|
type: ((_c = record.alert_c_linear) === null || _c === void 0 ? void 0 : _c.$["xsi:type"]) || null,
|
|
120
122
|
alertCLocationCountryCode: ((_d = record.alert_c_linear) === null || _d === void 0 ? void 0 : _d.alertCLocationCountryCode) || null,
|
|
121
123
|
alertCLocationTableNumber: ((_e = record.alert_c_linear) === null || _e === void 0 ? void 0 : _e.alertCLocationTableNumber) || null,
|
|
@@ -133,9 +135,13 @@ class OutputTrafficRestrictionsTransformation {
|
|
|
133
135
|
specificLocation: ltStart,
|
|
134
136
|
},
|
|
135
137
|
},
|
|
136
|
-
}
|
|
137
|
-
osmPath
|
|
138
|
-
}
|
|
138
|
+
};
|
|
139
|
+
newLine.osmPath = record.osm_path;
|
|
140
|
+
}
|
|
141
|
+
else if (record.global_network_linear) {
|
|
142
|
+
newLine.osmPath = record.osm_path;
|
|
143
|
+
}
|
|
144
|
+
resultRecordsArr.push(newLine);
|
|
139
145
|
}
|
|
140
146
|
return resultRecordsArr;
|
|
141
147
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputTrafficRestrictionsTransformation.js","sourceRoot":"","sources":["../../../src/output-gateway/transformations/OutputTrafficRestrictionsTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"OutputTrafficRestrictionsTransformation.js","sourceRoot":"","sources":["../../../src/output-gateway/transformations/OutputTrafficRestrictionsTransformation.ts"],"names":[],"mappings":"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"}
|