@golemio/parkings 1.8.7-dev.1238114799 → 1.8.7-dev.1241477950
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/04_tsk_parking_v2.sql +2 -2
- package/db/migrations/postgresql/20240402115132-parking-machines-source-id.js +53 -0
- package/db/migrations/postgresql/sqls/20240402115132-parking-machines-source-id-down.sql +2 -0
- package/db/migrations/postgresql/sqls/20240402115132-parking-machines-source-id-up.sql +3 -0
- package/dist/integration-engine/datasources/osm/OsmParkingMachinesDataSource.d.ts +9 -0
- package/dist/integration-engine/datasources/osm/OsmParkingMachinesDataSource.js +53 -0
- package/dist/integration-engine/datasources/osm/OsmParkingMachinesDataSource.js.map +1 -0
- package/dist/integration-engine/ioc/Di.js +4 -0
- package/dist/integration-engine/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +2 -0
- package/dist/integration-engine/ioc/ModuleContainerToken.js +2 -0
- package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
- package/dist/integration-engine/repositories/ParkingMachinesRepository.js +1 -0
- package/dist/integration-engine/repositories/ParkingMachinesRepository.js.map +1 -1
- package/dist/integration-engine/transformations/TskParkingMachinesTransformation.js +4 -2
- package/dist/integration-engine/transformations/TskParkingMachinesTransformation.js.map +1 -1
- package/dist/integration-engine/transformations/osm/OsmParkingMachinesTransformation.d.ts +10 -0
- package/dist/integration-engine/transformations/osm/OsmParkingMachinesTransformation.js +26 -0
- package/dist/integration-engine/transformations/osm/OsmParkingMachinesTransformation.js.map +1 -0
- package/dist/integration-engine/workers/NewParkingsWorker.js +1 -0
- package/dist/integration-engine/workers/NewParkingsWorker.js.map +1 -1
- package/dist/integration-engine/workers/tasks/SaveOsmParkingMachinesTask.d.ts +12 -0
- package/dist/integration-engine/workers/tasks/SaveOsmParkingMachinesTask.js +62 -0
- package/dist/integration-engine/workers/tasks/SaveOsmParkingMachinesTask.js.map +1 -0
- package/dist/output-gateway/routers/v3/V3ParkingMachinesRouter.js +1 -1
- package/dist/output-gateway/routers/v3/V3ParkingMachinesRouter.js.map +1 -1
- package/dist/output-gateway/transformations/v3/ParkingMachinesDtoTransformation.js +1 -1
- package/dist/output-gateway/transformations/v3/ParkingMachinesDtoTransformation.js.map +1 -1
- package/dist/schema-definitions/datasources/osm/FeatureCollectionSchemaGenerator.d.ts +28 -0
- package/dist/schema-definitions/datasources/osm/FeatureCollectionSchemaGenerator.js +4 -0
- package/dist/schema-definitions/datasources/osm/FeatureCollectionSchemaGenerator.js.map +1 -1
- package/dist/schema-definitions/datasources/osm/OsmParkingMachinesSchema.d.ts +3 -0
- package/dist/schema-definitions/datasources/osm/OsmParkingMachinesSchema.js +14 -0
- package/dist/schema-definitions/datasources/osm/OsmParkingMachinesSchema.js.map +1 -0
- package/dist/schema-definitions/datasources/osm/interfaces/IOsmParkingMachinesProperties.d.ts +5 -0
- package/dist/schema-definitions/datasources/osm/interfaces/IOsmParkingMachinesProperties.js +3 -0
- package/dist/schema-definitions/datasources/osm/interfaces/IOsmParkingMachinesProperties.js.map +1 -0
- package/dist/schema-definitions/models/ParkingMachinesModel.d.ts +1 -0
- package/dist/schema-definitions/models/ParkingMachinesModel.js +2 -1
- package/dist/schema-definitions/models/ParkingMachinesModel.js.map +1 -1
- package/dist/schema-definitions/models/interfaces/IParkingMachine.d.ts +3 -2
- package/docs/implementation-documentation.md +17 -5
- package/docs/openapi-output.yaml +8 -8
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
INSERT INTO "parking_machines" (id,"source",code,"type","location",valid_from,tariff_id) VALUES
|
|
2
|
-
('4521afac-66db-4680-abc5-0006837d977a','tsk_v2','10000088','info_box','SRID=4326;POINT (14.509560372775391 50.08336146182989)','2023-03-27 16:22:55.370','bdd68c37-2462-4825-befa-1eeab518dfbd');
|
|
1
|
+
INSERT INTO "parking_machines" (id,"source",code,"type","location",valid_from,tariff_id, source_id) VALUES
|
|
2
|
+
('tsk_v2-4521afac-66db-4680-abc5-0006837d977a','tsk_v2','10000088','info_box','SRID=4326;POINT (14.509560372775391 50.08336146182989)','2023-03-27 16:22:55.370','bdd68c37-2462-4825-befa-1eeab518dfbd', '4521afac-66db-4680-abc5-0006837d977a');
|
|
3
3
|
|
|
4
4
|
INSERT INTO parkings (id,"source",source_id,data_provider,"name",category,date_modified,address,"location",area_served,web_app_payment_url,total_spot_number,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by,tariff_id,valid_from,valid_to,parking_type,zone_type,centroid,android_app_payment_url,ios_app_payment_url,contact) VALUES
|
|
5
5
|
('tsk2-P1-0586','tsk_v2','c66bb668-eab6-49da-bc84-002263e1dce0','www.tsk-praha.cz','P1-0586','blue','2023-10-13 06:47:17.196','{"address_country":"Česko","address_formatted":"Na Poříčí, 11000 Praha Nové Město, Česko","address_locality":"Praha","address_region":"Nové Město","postal_code":"11000","street_address":"Na Poříčí"}','SRID=4326;MULTIPOLYGON (((14.435146686704691 50.09031935764648, 14.435158778421304 50.090037674196914, 14.436496591004804 50.090271939573704, 14.436891101497103 50.09057582442722, 14.436584596966501 50.090700574765144, 14.436361060659229 50.09071081877421, 14.435146686704691 50.09031935764648)), ((14.432518050883488 50.08963880488788, 14.432849963583294 50.08974602637074, 14.433520760939317 50.08983654654372, 14.434026273297146 50.08989232808531, 14.433980344589223 50.0900468365997, 14.433568068617168 50.09014494638063, 14.4326828562706 50.08990536564012, 14.432518050883488 50.08963880488788)), ((14.43054520416443 50.089075595822536, 14.431267236152568 50.08895539557057, 14.431701029418882 50.089166218961886, 14.432130432442564 50.089421387255, 14.432518050883488 50.08963880488788, 14.43220935744498 50.089735597324186, 14.432069970660601 50.08973394311176, 14.431747143504648 50.08969881144357, 14.4308507378023 50.08944361428869, 14.43054520416443 50.089075595822536)))',NULL,NULL,42,NULL,'2023-10-04 22:05:34.589',NULL,NULL,'2023-10-13 06:47:28.150',NULL,'0639c53f-c555-49ac-b5e0-bb3d50acf588','2023-06-12 02:03:43.000',NULL,'on_street','zone','SRID=4326;POINT (14.433520760939317 50.08983654654372)',NULL,NULL,'{"email":"test@golemio.cz","phone":null,"website":null}');
|
|
@@ -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', '20240402115132-parking-machines-source-id-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', '20240402115132-parking-machines-source-id-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,9 @@
|
|
|
1
|
+
import { ISimpleConfig } from "@golemio/core/dist/helpers/configuration/ISimpleConfig";
|
|
2
|
+
import { IGenericFeature } from "./../interfaces/IGenericFeature";
|
|
3
|
+
import { IOsmParkingMachinesProperties } from "../../../schema-definitions/datasources/osm/interfaces/IOsmParkingMachinesProperties";
|
|
4
|
+
export declare class OsmParkingMachinesDataSource {
|
|
5
|
+
private config;
|
|
6
|
+
private url;
|
|
7
|
+
constructor(config: ISimpleConfig);
|
|
8
|
+
getOsmParkingMachines(): Promise<Array<IGenericFeature<IOsmParkingMachinesProperties>>>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
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.OsmParkingMachinesDataSource = void 0;
|
|
25
|
+
const FeatureCollectionSchemaGenerator_1 = require("../../../schema-definitions/datasources/osm/FeatureCollectionSchemaGenerator");
|
|
26
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
27
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
28
|
+
const HTTPFetchProtocolStrategy_1 = require("@golemio/core/dist/integration-engine/datasources/protocol-strategy/HTTPFetchProtocolStrategy");
|
|
29
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
30
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
31
|
+
let OsmParkingMachinesDataSource = exports.OsmParkingMachinesDataSource = class OsmParkingMachinesDataSource {
|
|
32
|
+
constructor(config) {
|
|
33
|
+
this.config = config;
|
|
34
|
+
this.url = this.config.getValue("module.parking.osm.datasource.parkingMachinesUrl");
|
|
35
|
+
}
|
|
36
|
+
getOsmParkingMachines() {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
return new integration_engine_1.DataSource("OsmParkingMachinesDataSource", new HTTPFetchProtocolStrategy_1.HTTPFetchProtocolStrategy({
|
|
39
|
+
method: "GET",
|
|
40
|
+
url: this.url,
|
|
41
|
+
headers: {
|
|
42
|
+
"Content-Type": "application/json",
|
|
43
|
+
},
|
|
44
|
+
}), new integration_engine_1.JSONDataTypeStrategy({ resultsPath: "features" }), new golemio_validator_1.JSONSchemaValidator("OsmParkingMachinesDataSourceValidator", FeatureCollectionSchemaGenerator_1.OsmSchemaGenerator.getParkingMachinesSchema().properties.features)).getAll();
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.OsmParkingMachinesDataSource = OsmParkingMachinesDataSource = __decorate([
|
|
49
|
+
(0, tsyringe_1.injectable)(),
|
|
50
|
+
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.SimpleConfig)),
|
|
51
|
+
__metadata("design:paramtypes", [Object])
|
|
52
|
+
], OsmParkingMachinesDataSource);
|
|
53
|
+
//# sourceMappingURL=OsmParkingMachinesDataSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OsmParkingMachinesDataSource.js","sourceRoot":"","sources":["../../../../src/integration-engine/datasources/osm/OsmParkingMachinesDataSource.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,mIAA2F;AAE3F,wEAAqE;AACrE,8EAAyF;AACzF,6IAA0I;AAC1I,mFAAkF;AAClF,iEAAwE;AAKjE,IAAM,4BAA4B,0CAAlC,MAAM,4BAA4B;IAGrC,YAAoD,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QACrE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAS,kDAAkD,CAAC,CAAC;IAChG,CAAC;IAEY,qBAAqB;;YAC9B,OAAO,IAAI,+BAAU,CACjB,8BAA8B,EAC9B,IAAI,qDAAyB,CAAC;gBAC1B,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE;oBACL,cAAc,EAAE,kBAAkB;iBACrC;aACJ,CAAC,EACF,IAAI,yCAAoB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EACrD,IAAI,uCAAmB,CACnB,uCAAuC,EACvC,qDAAkB,CAAC,wBAAwB,EAAE,CAAC,UAAU,CAAC,QAAQ,CACpE,CACJ,CAAC,MAAM,EAAE,CAAC;QACf,CAAC;KAAA;CACJ,CAAA;uCAxBY,4BAA4B;IADxC,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;;GAHlC,4BAA4B,CAwBxC"}
|
|
@@ -44,6 +44,8 @@ const ioc_1 = require("@golemio/core/dist/integration-engine/ioc");
|
|
|
44
44
|
const Di_1 = require("@golemio/core/dist/integration-engine/ioc/Di");
|
|
45
45
|
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
46
46
|
const ModuleContainerToken_1 = require("./ModuleContainerToken");
|
|
47
|
+
const SaveOsmParkingMachinesTask_1 = require("../workers/tasks/SaveOsmParkingMachinesTask");
|
|
48
|
+
const OsmParkingMachinesDataSource_1 = require("../datasources/osm/OsmParkingMachinesDataSource");
|
|
47
49
|
//#region Initialization
|
|
48
50
|
const parkingsContainer = Di_1.IntegrationEngineContainer.createChildContainer();
|
|
49
51
|
exports.ParkingsContainer = parkingsContainer;
|
|
@@ -75,6 +77,7 @@ parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.
|
|
|
75
77
|
parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.OsmEntrancesDataSource, OsmEntrancesDataSource_1.OsmEntrancesDataSource);
|
|
76
78
|
parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.ManualEntrancesDatasource, ManualEntrancesDatasource_1.ManualEntrancesDatasource);
|
|
77
79
|
parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.IptOictDataSource, IptOictDataSource_1.IptOictDataSource);
|
|
80
|
+
parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.OsmParkingMachinesDataSource, OsmParkingMachinesDataSource_1.OsmParkingMachinesDataSource);
|
|
78
81
|
//#endregion
|
|
79
82
|
//#region Helpers
|
|
80
83
|
parkingsContainer
|
|
@@ -116,4 +119,5 @@ parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.
|
|
|
116
119
|
parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.CalculateAverageOccupancyTask, CalculateAverageOccupancyTask_1.CalculateAverageOccupancyTask);
|
|
117
120
|
parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.SaveManualEntrancesDataTask, SaveManualEntrancesDataTask_1.SaveManualEntrancesDataTask);
|
|
118
121
|
parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.SaveOsmEntrancesDataTask, SaveOsmEntrancesDataTask_1.SaveOsmEntrancesDataTask);
|
|
122
|
+
parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.SaveOsmParkingMachinesTask, SaveOsmParkingMachinesTask_1.SaveOsmParkingMachinesTask);
|
|
119
123
|
//# sourceMappingURL=Di.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,6GAAqG;AACrG,6EAAqE;AACrE,wEAAsE;AACtE,sGAAoG;AACpG,4FAA0F;AAC1F,gFAA8E;AAC9E,+FAA6F;AAC7F,oGAAkG;AAClG,oEAAkE;AAClE,sFAAoF;AACpF,iHAA+G;AAC/G,yHAAuH;AACvH,yGAAuG;AACvG,2FAAyF;AACzF,6EAA2E;AAC3E,2FAAyF;AACzF,yFAAuF;AACvF,uFAAqF;AACrF,uGAAqG;AACrG,2FAAyF;AACzF,iGAA+F;AAC/F,+GAA6G;AAC7G,2EAAyE;AACzE,6FAA2F;AAC3F,iFAA+E;AAC/E,0GAAwG;AACxG,wGAAsG;AACtG,kGAAgG;AAChG,oGAAkG;AAClG,oGAAkG;AAClG,4FAA0F;AAC1F,0FAAwF;AACxF,8FAA4F;AAC5F,gFAA8E;AAC9E,sEAAoE;AACpE,wFAAsF;AACtF,kGAAgG;AAChG,wGAAsG;AAKtG,wEAAqE;AAGrE,mEAA2E;AAC3E,qEAA0F;AAC1F,iEAAiG;AACjG,iEAA8D;
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,8 @@ declare const ModuleContainerToken: {
|
|
|
32
32
|
SaveOsmDataTask: symbol;
|
|
33
33
|
OsmEntrancesDataSource: symbol;
|
|
34
34
|
SaveOsmEntrancesDataTask: symbol;
|
|
35
|
+
OsmParkingMachinesDataSource: symbol;
|
|
36
|
+
SaveOsmParkingMachinesTask: symbol;
|
|
35
37
|
ParkingEntrancesRepository: symbol;
|
|
36
38
|
ManualEntrancesDatasource: symbol;
|
|
37
39
|
SaveManualEntrancesDataTask: symbol;
|
|
@@ -40,6 +40,8 @@ const ModuleContainerToken = {
|
|
|
40
40
|
SaveOsmDataTask: Symbol(),
|
|
41
41
|
OsmEntrancesDataSource: Symbol(),
|
|
42
42
|
SaveOsmEntrancesDataTask: Symbol(),
|
|
43
|
+
OsmParkingMachinesDataSource: Symbol(),
|
|
44
|
+
SaveOsmParkingMachinesTask: Symbol(),
|
|
43
45
|
//#endregion
|
|
44
46
|
//#region Entrances
|
|
45
47
|
ParkingEntrancesRepository: Symbol(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,gBAAgB,EAAE,MAAM,EAAE;IAC1B,UAAU,EAAE,MAAM,EAAE;IACpB,8BAA8B,EAAE,MAAM,EAAE;IACxC,kBAAkB,EAAE,MAAM,EAAE;IAC5B,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,wBAAwB,EAAE,MAAM,EAAE;IAClC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,yBAAyB,EAAE,MAAM,EAAE;IACnC,0BAA0B,EAAE,MAAM,EAAE;IACpC,6BAA6B,EAAE,MAAM,EAAE;IACvC,oCAAoC,EAAE,MAAM,EAAE;IAC9C,mBAAmB,EAAE,MAAM,EAAE;IAE7B,4BAA4B,EAAE,MAAM,EAAE;IACtC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,4BAA4B,EAAE,MAAM,EAAE;IACtC,+BAA+B,EAAE,MAAM,EAAE;IAEzC,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,gCAAgC,EAAE,MAAM,EAAE;IAE1C,mBAAmB;IACnB,0BAA0B,EAAE,MAAM,EAAE;IACpC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,YAAY;IAEZ,oBAAoB;IACpB,gCAAgC,EAAE,MAAM,EAAE;IAC1C,oCAAoC,EAAE,MAAM,EAAE;IAC9C,4BAA4B,EAAE,MAAM,EAAE;IACtC,8BAA8B,EAAE,MAAM,EAAE;IACxC,6BAA6B,EAAE,MAAM,EAAE;IACvC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,YAAY;IAEZ,aAAa;IACb,aAAa,EAAE,MAAM,EAAE;IACvB,eAAe,EAAE,MAAM,EAAE;IACzB,sBAAsB,EAAE,MAAM,EAAE;IAChC,wBAAwB,EAAE,MAAM,EAAE;IAClC,YAAY;IAEZ,mBAAmB;IACnB,0BAA0B,EAAE,MAAM,EAAE;IACpC,yBAAyB,EAAE,MAAM,EAAE;IACnC,2BAA2B,EAAE,MAAM,EAAE;IACrC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,6BAA6B,EAAE,MAAM,EAAE;IACvC,YAAY;IAEZ,iBAAiB;IACjB,iBAAiB,EAAE,MAAM,EAAE;IAC3B,0BAA0B,EAAE,MAAM,EAAE;IACpC,8BAA8B,EAAE,MAAM,EAAE;IACxC,yBAAyB,EAAE,MAAM,EAAE;IACnC,YAAY;IAEZ,2BAA2B;IAC3B,6BAA6B,EAAE,MAAM,EAAE;IACvC,YAAY;CACf,CAAC;AACO,oDAAoB"}
|
|
1
|
+
{"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,gBAAgB,EAAE,MAAM,EAAE;IAC1B,UAAU,EAAE,MAAM,EAAE;IACpB,8BAA8B,EAAE,MAAM,EAAE;IACxC,kBAAkB,EAAE,MAAM,EAAE;IAC5B,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,wBAAwB,EAAE,MAAM,EAAE;IAClC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,yBAAyB,EAAE,MAAM,EAAE;IACnC,0BAA0B,EAAE,MAAM,EAAE;IACpC,6BAA6B,EAAE,MAAM,EAAE;IACvC,oCAAoC,EAAE,MAAM,EAAE;IAC9C,mBAAmB,EAAE,MAAM,EAAE;IAE7B,4BAA4B,EAAE,MAAM,EAAE;IACtC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,4BAA4B,EAAE,MAAM,EAAE;IACtC,+BAA+B,EAAE,MAAM,EAAE;IAEzC,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,gCAAgC,EAAE,MAAM,EAAE;IAE1C,mBAAmB;IACnB,0BAA0B,EAAE,MAAM,EAAE;IACpC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,YAAY;IAEZ,oBAAoB;IACpB,gCAAgC,EAAE,MAAM,EAAE;IAC1C,oCAAoC,EAAE,MAAM,EAAE;IAC9C,4BAA4B,EAAE,MAAM,EAAE;IACtC,8BAA8B,EAAE,MAAM,EAAE;IACxC,6BAA6B,EAAE,MAAM,EAAE;IACvC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,YAAY;IAEZ,aAAa;IACb,aAAa,EAAE,MAAM,EAAE;IACvB,eAAe,EAAE,MAAM,EAAE;IACzB,sBAAsB,EAAE,MAAM,EAAE;IAChC,wBAAwB,EAAE,MAAM,EAAE;IAClC,4BAA4B,EAAE,MAAM,EAAE;IACtC,0BAA0B,EAAE,MAAM,EAAE;IACpC,YAAY;IAEZ,mBAAmB;IACnB,0BAA0B,EAAE,MAAM,EAAE;IACpC,yBAAyB,EAAE,MAAM,EAAE;IACnC,2BAA2B,EAAE,MAAM,EAAE;IACrC,qBAAqB,EAAE,MAAM,EAAE;IAC/B,6BAA6B,EAAE,MAAM,EAAE;IACvC,YAAY;IAEZ,iBAAiB;IACjB,iBAAiB,EAAE,MAAM,EAAE;IAC3B,0BAA0B,EAAE,MAAM,EAAE;IACpC,8BAA8B,EAAE,MAAM,EAAE;IACxC,yBAAyB,EAAE,MAAM,EAAE;IACnC,YAAY;IAEZ,2BAA2B;IAC3B,6BAA6B,EAAE,MAAM,EAAE;IACvC,YAAY;CACf,CAAC;AACO,oDAAoB"}
|
|
@@ -17,6 +17,7 @@ class ParkingMachinesRepository extends models_1.PostgresModel {
|
|
|
17
17
|
type: sequelize_1.default.STRING,
|
|
18
18
|
},
|
|
19
19
|
source: sequelize_1.default.STRING,
|
|
20
|
+
source_id: sequelize_1.default.STRING,
|
|
20
21
|
code: sequelize_1.default.STRING,
|
|
21
22
|
type: sequelize_1.default.STRING,
|
|
22
23
|
location: sequelize_1.default.GEOMETRY,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParkingMachinesRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repositories/ParkingMachinesRepository.ts"],"names":[],"mappings":";;;;;;AAAA,yEAAqF;AACrF,mDAAgC;AAChC,mFAAkF;AAClF,4GAAqF;AACrF,oFAA4D;AAE5D,MAAa,yBAA0B,SAAQ,sBAAa;IACxD;QACI,MAAM,eAAe,GAA8B;YAC/C,EAAE,EAAE;gBACA,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,mBAAS,CAAC,MAAM;aACzB;YACD,MAAM,EAAE,mBAAS,CAAC,MAAM;YACxB,IAAI,EAAE,mBAAS,CAAC,MAAM;YACtB,IAAI,EAAE,mBAAS,CAAC,MAAM;YACtB,QAAQ,EAAE,mBAAS,CAAC,QAAQ;YAC5B,SAAS,EAAE,mBAAS,CAAC,IAAI;YACzB,QAAQ,EAAE,mBAAS,CAAC,MAAM;SAC7B,CAAC;QAEF,KAAK,CACD,2BAA2B,EAC3B;YACI,yBAAyB,EAAE,eAAe;YAC1C,QAAQ,EAAE,eAAQ,CAAC,QAAQ;YAC3B,WAAW,EAAE,kBAAkB;YAC/B,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CAAC,oCAAoC,EAAE,mDAAwB,CAAC,CAC1F,CAAC;IACN,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"ParkingMachinesRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repositories/ParkingMachinesRepository.ts"],"names":[],"mappings":";;;;;;AAAA,yEAAqF;AACrF,mDAAgC;AAChC,mFAAkF;AAClF,4GAAqF;AACrF,oFAA4D;AAE5D,MAAa,yBAA0B,SAAQ,sBAAa;IACxD;QACI,MAAM,eAAe,GAA8B;YAC/C,EAAE,EAAE;gBACA,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,mBAAS,CAAC,MAAM;aACzB;YACD,MAAM,EAAE,mBAAS,CAAC,MAAM;YACxB,SAAS,EAAE,mBAAS,CAAC,MAAM;YAC3B,IAAI,EAAE,mBAAS,CAAC,MAAM;YACtB,IAAI,EAAE,mBAAS,CAAC,MAAM;YACtB,QAAQ,EAAE,mBAAS,CAAC,QAAQ;YAC5B,SAAS,EAAE,mBAAS,CAAC,IAAI;YACzB,QAAQ,EAAE,mBAAS,CAAC,MAAM;SAC7B,CAAC;QAEF,KAAK,CACD,2BAA2B,EAC3B;YACI,yBAAyB,EAAE,eAAe;YAC1C,QAAQ,EAAE,eAAQ,CAAC,QAAQ;YAC3B,WAAW,EAAE,kBAAkB;YAC/B,UAAU,EAAE,gBAAgB;SAC/B,EACD,IAAI,uCAAmB,CAAC,oCAAoC,EAAE,mDAAwB,CAAC,CAC1F,CAAC;IACN,CAAC;CACJ;AA3BD,8DA2BC"}
|
|
@@ -3,14 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TskParkingMachinesTransformation = void 0;
|
|
4
4
|
const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
|
|
5
5
|
const wkt_1 = require("@terraformer/wkt");
|
|
6
|
+
const SourceEnum_1 = require("../../helpers/constants/SourceEnum");
|
|
6
7
|
class TskParkingMachinesTransformation extends AbstractTransformation_1.AbstractTransformation {
|
|
7
8
|
constructor() {
|
|
8
9
|
super(...arguments);
|
|
9
10
|
this.name = "TskParkingMachinesTransformation";
|
|
10
11
|
this.transformInternal = (tskParkingMachine) => {
|
|
11
12
|
return {
|
|
12
|
-
id: tskParkingMachine.idParkMachine
|
|
13
|
-
source:
|
|
13
|
+
id: `${SourceEnum_1.SourceEnum.TSK_V2}-${tskParkingMachine.idParkMachine}`,
|
|
14
|
+
source: SourceEnum_1.SourceEnum.TSK_V2,
|
|
15
|
+
sourceId: tskParkingMachine.idParkMachine,
|
|
14
16
|
code: tskParkingMachine.code,
|
|
15
17
|
type: tskParkingMachine.idStatus == 5 || tskParkingMachine.idStatus == 6 ? "info_box" : "payment_machine",
|
|
16
18
|
location: (0, wkt_1.wktToGeoJSON)(tskParkingMachine.positionWKT),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TskParkingMachinesTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/TskParkingMachinesTransformation.ts"],"names":[],"mappings":";;;AAAA,6GAA0G;AAI1G,0CAAgD;
|
|
1
|
+
{"version":3,"file":"TskParkingMachinesTransformation.js","sourceRoot":"","sources":["../../../src/integration-engine/transformations/TskParkingMachinesTransformation.ts"],"names":[],"mappings":";;;AAAA,6GAA0G;AAI1G,0CAAgD;AAChD,mEAA2D;AAE3D,MAAa,gCAAiC,SAAQ,+CAA2D;IAAjH;;QACW,SAAI,GAAW,kCAAkC,CAAC;QAEzD,sBAAiB,GAAG,CAAC,iBAAqC,EAAmB,EAAE;YAC3E,OAAO;gBACH,EAAE,EAAE,GAAG,uBAAU,CAAC,MAAM,IAAI,iBAAiB,CAAC,aAAa,EAAE;gBAC7D,MAAM,EAAE,uBAAU,CAAC,MAAM;gBACzB,QAAQ,EAAE,iBAAiB,CAAC,aAAa;gBACzC,IAAI,EAAE,iBAAiB,CAAC,IAAI;gBAC5B,IAAI,EAAE,iBAAiB,CAAC,QAAQ,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB;gBACzG,QAAQ,EAAE,IAAA,kBAAY,EAAC,iBAAiB,CAAC,WAAW,CAAa;gBACjE,SAAS,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;gBACjD,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;aACvC,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA;AAfD,4EAeC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
|
|
2
|
+
import { IParkingMachine } from "../../../schema-definitions/models/interfaces/IParkingMachine";
|
|
3
|
+
import { IGenericFeature } from "../../datasources/interfaces/IGenericFeature";
|
|
4
|
+
import { IOsmParkingMachinesProperties } from "../../../schema-definitions/datasources/osm/interfaces/IOsmParkingMachinesProperties";
|
|
5
|
+
export declare class OsmParkingMachinesTransformation extends AbstractTransformation<IGenericFeature<IOsmParkingMachinesProperties>, IParkingMachine> {
|
|
6
|
+
private transformationDate;
|
|
7
|
+
name: string;
|
|
8
|
+
constructor(transformationDate: Date);
|
|
9
|
+
transformInternal: (parkingMachine: IGenericFeature<IOsmParkingMachinesProperties>) => IParkingMachine;
|
|
10
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OsmParkingMachinesTransformation = void 0;
|
|
4
|
+
const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
|
|
5
|
+
const SourceEnum_1 = require("../../../helpers/constants/SourceEnum");
|
|
6
|
+
class OsmParkingMachinesTransformation extends AbstractTransformation_1.AbstractTransformation {
|
|
7
|
+
constructor(transformationDate) {
|
|
8
|
+
super();
|
|
9
|
+
this.transformationDate = transformationDate;
|
|
10
|
+
this.name = "OsmParkingMachinesTransformation";
|
|
11
|
+
this.transformInternal = (parkingMachine) => {
|
|
12
|
+
return {
|
|
13
|
+
id: `${SourceEnum_1.SourceEnum.OSM}-${parkingMachine.properties.osm_id}`,
|
|
14
|
+
source: SourceEnum_1.SourceEnum.OSM,
|
|
15
|
+
sourceId: parkingMachine.properties.osm_id,
|
|
16
|
+
code: null,
|
|
17
|
+
type: "payment_machine",
|
|
18
|
+
location: parkingMachine.geometry,
|
|
19
|
+
validFrom: this.transformationDate,
|
|
20
|
+
tariffId: null,
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.OsmParkingMachinesTransformation = OsmParkingMachinesTransformation;
|
|
26
|
+
//# sourceMappingURL=OsmParkingMachinesTransformation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OsmParkingMachinesTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/transformations/osm/OsmParkingMachinesTransformation.ts"],"names":[],"mappings":";;;AAAA,6GAA0G;AAE1G,sEAA2D;AAI3D,MAAa,gCAAiC,SAAQ,+CAGrD;IAGG,YAAoB,kBAAwB;QACxC,KAAK,EAAE,CAAC;QADQ,uBAAkB,GAAlB,kBAAkB,CAAM;QAFrC,SAAI,GAAW,kCAAkC,CAAC;QAMzD,sBAAiB,GAAG,CAAC,cAA8D,EAAmB,EAAE;YACpG,OAAO;gBACH,EAAE,EAAE,GAAG,uBAAU,CAAC,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC3D,MAAM,EAAE,uBAAU,CAAC,GAAG;gBACtB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,MAAM;gBAC1C,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,SAAS,EAAE,IAAI,CAAC,kBAAkB;gBAClC,QAAQ,EAAE,IAAI;aACjB,CAAC;QACN,CAAC,CAAC;IAbF,CAAC;CAcJ;AAtBD,4EAsBC"}
|
|
@@ -27,6 +27,7 @@ class NewParkingsWorker extends integration_engine_1.AbstractWorker {
|
|
|
27
27
|
this.registerTask(Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.SaveIsphkMeasurementsTask));
|
|
28
28
|
this.registerTask(Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.SaveOsmEntrancesDataTask));
|
|
29
29
|
this.registerTask(Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.SaveManualEntrancesDataTask));
|
|
30
|
+
this.registerTask(Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.SaveOsmParkingMachinesTask));
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
exports.NewParkingsWorker = NewParkingsWorker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewParkingsWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/NewParkingsWorker.ts"],"names":[],"mappings":";;;AAAA,kCAA+C;AAC/C,sEAAoE;AACpE,8EAAuE;AAEvE,2CAAuD;AACvD,2EAAwE;AAExE,MAAa,iBAAkB,SAAQ,mCAAc;IAIjD;QACI,KAAK,EAAE,CAAC;QAHI,SAAI,GAAG,iBAAiB,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"NewParkingsWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/NewParkingsWorker.ts"],"names":[],"mappings":";;;AAAA,kCAA+C;AAC/C,sEAAoE;AACpE,8EAAuE;AAEvE,2CAAuD;AACvD,2EAAwE;AAExE,MAAa,iBAAkB,SAAQ,mCAAc;IAIjD;QACI,KAAK,EAAE,CAAC;QAHI,SAAI,GAAG,iBAAiB,CAAC,UAAU,CAAC;QAqB7C,iBAAY,GAAG,CAAC,IAAW,EAAQ,EAAE;YACxC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAnBE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC3G,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,YAAY,CAAC,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,eAAe,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACnG,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACzG,CAAC;;AArBL,8CA2BC;AA1BmB,4BAAU,GAAG,oCAAwB,AAA3B,CAA4B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine/workers/AbstractEmptyTask";
|
|
2
|
+
import { OsmParkingMachinesDataSource } from "../../datasources/osm/OsmParkingMachinesDataSource";
|
|
3
|
+
import { ParkingMachinesRepository } from "../../repositories/ParkingMachinesRepository";
|
|
4
|
+
export declare class SaveOsmParkingMachinesTask extends AbstractEmptyTask {
|
|
5
|
+
private dataSource;
|
|
6
|
+
private repository;
|
|
7
|
+
readonly queueName = "saveOsmParkingMachinesTask";
|
|
8
|
+
readonly queueTtl: number;
|
|
9
|
+
constructor(dataSource: OsmParkingMachinesDataSource, repository: ParkingMachinesRepository);
|
|
10
|
+
protected execute(): Promise<void>;
|
|
11
|
+
private getAtributesToUpdate;
|
|
12
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
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.SaveOsmParkingMachinesTask = void 0;
|
|
25
|
+
const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
|
|
26
|
+
const AbstractEmptyTask_1 = require("@golemio/core/dist/integration-engine/workers/AbstractEmptyTask");
|
|
27
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
28
|
+
const constants_1 = require("../constants");
|
|
29
|
+
const OsmParkingMachinesDataSource_1 = require("../../datasources/osm/OsmParkingMachinesDataSource");
|
|
30
|
+
const ParkingMachinesRepository_1 = require("../../repositories/ParkingMachinesRepository");
|
|
31
|
+
const OsmParkingMachinesTransformation_1 = require("../../transformations/osm/OsmParkingMachinesTransformation");
|
|
32
|
+
let SaveOsmParkingMachinesTask = exports.SaveOsmParkingMachinesTask = class SaveOsmParkingMachinesTask extends AbstractEmptyTask_1.AbstractEmptyTask {
|
|
33
|
+
constructor(dataSource, repository) {
|
|
34
|
+
super(constants_1.NEW_PARKINGS_WORKER_NAME);
|
|
35
|
+
this.dataSource = dataSource;
|
|
36
|
+
this.repository = repository;
|
|
37
|
+
this.queueName = "saveOsmParkingMachinesTask";
|
|
38
|
+
this.queueTtl = 15 * 60 * 1000; // 15min
|
|
39
|
+
}
|
|
40
|
+
execute() {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
const transformationDate = new Date();
|
|
43
|
+
const parkingMachines = yield this.dataSource.getOsmParkingMachines();
|
|
44
|
+
const transformation = new OsmParkingMachinesTransformation_1.OsmParkingMachinesTransformation(transformationDate);
|
|
45
|
+
const transformedData = transformation.transformArray(parkingMachines);
|
|
46
|
+
yield this.repository.bulkSave(transformedData, this.getAtributesToUpdate(transformedData[0]));
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
getAtributesToUpdate(parkingMachine) {
|
|
50
|
+
return Object.keys(parkingMachine)
|
|
51
|
+
.filter((key) => key !== "validFrom")
|
|
52
|
+
.concat("updated_at");
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
exports.SaveOsmParkingMachinesTask = SaveOsmParkingMachinesTask = __decorate([
|
|
56
|
+
(0, tsyringe_1.injectable)(),
|
|
57
|
+
__param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.OsmParkingMachinesDataSource)),
|
|
58
|
+
__param(1, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.ParkingMachinesRepository)),
|
|
59
|
+
__metadata("design:paramtypes", [OsmParkingMachinesDataSource_1.OsmParkingMachinesDataSource,
|
|
60
|
+
ParkingMachinesRepository_1.ParkingMachinesRepository])
|
|
61
|
+
], SaveOsmParkingMachinesTask);
|
|
62
|
+
//# sourceMappingURL=SaveOsmParkingMachinesTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SaveOsmParkingMachinesTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/SaveOsmParkingMachinesTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAAoE;AACpE,uGAAoG;AACpG,iEAAwE;AACxE,4CAAwD;AACxD,qGAAgG;AAChG,4FAAuF;AACvF,iHAA4G;AAIrG,IAAM,0BAA0B,wCAAhC,MAAM,0BAA2B,SAAQ,qCAAiB;IAI7D,YAEI,UAAgD,EACQ,UAA6C;QAErG,KAAK,CAAC,oCAAwB,CAAC,CAAC;QAHxB,eAAU,GAAV,UAAU,CAA8B;QACgB,eAAU,GAAV,UAAU,CAA2B;QANzF,cAAS,GAAG,4BAA4B,CAAC;QACzC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ;IAQnD,CAAC;IAEe,OAAO;;YACnB,MAAM,kBAAkB,GAAG,IAAI,IAAI,EAAE,CAAC;YAEtC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;YACtE,MAAM,cAAc,GAAG,IAAI,mEAAgC,CAAC,kBAAkB,CAAC,CAAC;YAChF,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YACvE,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnG,CAAC;KAAA;IAEO,oBAAoB,CAAC,cAA+B;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;aAC7B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,WAAW,CAAC;aACpC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;CACJ,CAAA;qCA1BY,0BAA0B;IADtC,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,4BAA4B,CAAC,CAAA;IAEzD,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,yBAAyB,CAAC,CAAA;qCADnC,2DAA4B;QAC4B,qDAAyB;GAPhG,0BAA0B,CA0BtC"}
|
|
@@ -33,7 +33,7 @@ class V3ParkingMachinesRouter extends AbstractRouter_1.AbstractRouter {
|
|
|
33
33
|
.not()
|
|
34
34
|
.isArray(),
|
|
35
35
|
], Validation_1.pagination, Validation_1.checkErrors, (0, Validation_1.paginationLimitMiddleware)(this.path), (0, output_gateway_1.useCacheMiddleware)(), this.controller.getAll);
|
|
36
|
-
this.router.get("/:id", (0, express_validator_1.param)("id").exists().
|
|
36
|
+
this.router.get("/:id", (0, express_validator_1.param)("id").exists().not().isEmpty({ ignore_whitespace: true }).not().isArray(), Validation_1.checkErrors, (0, output_gateway_1.useCacheMiddleware)(), this.controller.getOne);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
const v3ParkingMachinesRouter = new V3ParkingMachinesRouter();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"V3ParkingMachinesRouter.js","sourceRoot":"","sources":["../../../../src/output-gateway/routers/v3/V3ParkingMachinesRouter.ts"],"names":[],"mappings":";;;AAAA,kGAA6F;AAC7F,qCAA+C;AAC/C,yEAAoE;AACpE,sFAAmF;AACnF,sEAAuE;AACvE,6EAAkH;AAClH,mFAAkF;AAClF,4CAA4C;AAG5C,MAAM,uBAAwB,SAAQ,+BAAc;IAKhD;QACI,KAAK,CAAC,wBAAY,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAHvC,mBAAc,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,yBAAyB;QAK/E,IAAI,CAAC,UAAU,GAAG,IAAI,yDAA2B,EAAE,CAAC;QACpD,IAAI,CAAC,sBAAsB,GAAG,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,sBAAsB,CAAC,CAAC;QACrG,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU,CAAC,MAAoC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,GAAG,EACH;YACI,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;YAC9E,IAAA,yBAAK,EAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YACzD,IAAA,yBAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YAClD,IAAA,yBAAK,EAAC,aAAa,CAAC;iBACf,QAAQ,EAAE;iBACV,OAAO,CAAC,4BAA4B,CAAC,CAAC,8BAA8B;iBACpE,GAAG,EAAE;iBACL,OAAO,EAAE;YACd,IAAA,yBAAK,EAAC,UAAU,CAAC;iBACZ,QAAQ,EAAE;iBACV,OAAO,CAAC,UAAU,CAAC,CAAC,wCAAwC;iBAC5D,GAAG,EAAE;iBACL,OAAO,EAAE;SACjB,EACD,uBAAU,EACV,wBAAW,EACX,IAAA,sCAAyB,EAAC,IAAI,CAAC,IAAI,CAAC,EACpC,IAAA,mCAAkB,GAAE,EACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,MAAM,EACN,IAAA,yBAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"V3ParkingMachinesRouter.js","sourceRoot":"","sources":["../../../../src/output-gateway/routers/v3/V3ParkingMachinesRouter.ts"],"names":[],"mappings":";;;AAAA,kGAA6F;AAC7F,qCAA+C;AAC/C,yEAAoE;AACpE,sFAAmF;AACnF,sEAAuE;AACvE,6EAAkH;AAClH,mFAAkF;AAClF,4CAA4C;AAG5C,MAAM,uBAAwB,SAAQ,+BAAc;IAKhD;QACI,KAAK,CAAC,wBAAY,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAHvC,mBAAc,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,yBAAyB;QAK/E,IAAI,CAAC,UAAU,GAAG,IAAI,yDAA2B,EAAE,CAAC;QACpD,IAAI,CAAC,sBAAsB,GAAG,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,sBAAsB,CAAC,CAAC;QACrG,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU,CAAC,MAAoC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,GAAG,EACH;YACI,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;YAC9E,IAAA,yBAAK,EAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YACzD,IAAA,yBAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YAClD,IAAA,yBAAK,EAAC,aAAa,CAAC;iBACf,QAAQ,EAAE;iBACV,OAAO,CAAC,4BAA4B,CAAC,CAAC,8BAA8B;iBACpE,GAAG,EAAE;iBACL,OAAO,EAAE;YACd,IAAA,yBAAK,EAAC,UAAU,CAAC;iBACZ,QAAQ,EAAE;iBACV,OAAO,CAAC,UAAU,CAAC,CAAC,wCAAwC;iBAC5D,GAAG,EAAE;iBACL,OAAO,EAAE;SACjB,EACD,uBAAU,EACV,wBAAW,EACX,IAAA,sCAAyB,EAAC,IAAI,CAAC,IAAI,CAAC,EACpC,IAAA,mCAAkB,GAAE,EACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,MAAM,EACN,IAAA,yBAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAC/E,wBAAW,EACX,IAAA,mCAAkB,GAAE,EACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;IACN,CAAC;CACJ;AAED,MAAM,uBAAuB,GAAmB,IAAI,uBAAuB,EAAE,CAAC;AAErE,0DAAuB"}
|
|
@@ -20,7 +20,7 @@ class ParkingMachinesDtoTransformation extends AbstractTransformation_1.Abstract
|
|
|
20
20
|
return (0, Geo_1.buildGeojsonFeature)({
|
|
21
21
|
id: element.id,
|
|
22
22
|
primary_source: element.source,
|
|
23
|
-
primary_source_id: element.
|
|
23
|
+
primary_source_id: element.sourceId,
|
|
24
24
|
code: element.code,
|
|
25
25
|
machine_type: element.type,
|
|
26
26
|
valid_from: element.validFrom,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParkingMachinesDtoTransformation.js","sourceRoot":"","sources":["../../../../src/output-gateway/transformations/v3/ParkingMachinesDtoTransformation.ts"],"names":[],"mappings":";;;AACA,6GAA0G;AAC1G,+DAA4H;AAE5H,6EAAwE;AAExE,MAAa,gCAAiC,SAAQ,+CAAwD;IAA9G;;QACW,SAAI,GAAW,kCAAkC,CAAC;QAElD,iCAA4B,GAAG,CAAC,QAA2B,EAAE,EAAE;YAClE,IAAI;gBACA,OAAO,IAAA,mCAA6B,EAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;aACvE;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aACvE;QACL,CAAC,CAAC;QAEQ,sBAAiB,GAAG,CAAC,OAAwB,EAAE,EAAE;YACvD,OAAO,IAAA,yBAAmB,EACtB;gBACI,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,cAAc,EAAE,OAAO,CAAC,MAAM;gBAC9B,iBAAiB,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"ParkingMachinesDtoTransformation.js","sourceRoot":"","sources":["../../../../src/output-gateway/transformations/v3/ParkingMachinesDtoTransformation.ts"],"names":[],"mappings":";;;AACA,6GAA0G;AAC1G,+DAA4H;AAE5H,6EAAwE;AAExE,MAAa,gCAAiC,SAAQ,+CAAwD;IAA9G;;QACW,SAAI,GAAW,kCAAkC,CAAC;QAElD,iCAA4B,GAAG,CAAC,QAA2B,EAAE,EAAE;YAClE,IAAI;gBACA,OAAO,IAAA,mCAA6B,EAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;aACvE;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aACvE;QACL,CAAC,CAAC;QAEQ,sBAAiB,GAAG,CAAC,OAAwB,EAAE,EAAE;YACvD,OAAO,IAAA,yBAAmB,EACtB;gBACI,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,cAAc,EAAE,OAAO,CAAC,MAAM;gBAC9B,iBAAiB,EAAE,OAAO,CAAC,QAAQ;gBACnC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,SAAS,EAAE,OAAO,CAAC,QAAQ;gBAC3B,GAAG,EAAG,OAAO,CAAC,QAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/C,GAAG,EAAG,OAAO,CAAC,QAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;aAClD,EACD,KAAK,EACL,KAAK,EACL,IAAI,CACP,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA;AA7BD,4EA6BC"}
|
|
@@ -2,6 +2,7 @@ import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
|
|
|
2
2
|
import { IOsmParkingProperties } from "./interfaces/IOsmParkingProperties";
|
|
3
3
|
import { IOsmParkingSpacesProperties } from "./interfaces/IOsmParkingSpacesProperties";
|
|
4
4
|
import { IOsmEntranceProperties } from "./interfaces/IOsmEntranceProperties";
|
|
5
|
+
import { IOsmParkingMachinesProperties } from "./interfaces/IOsmParkingMachinesProperties";
|
|
5
6
|
export declare class OsmSchemaGenerator {
|
|
6
7
|
static getParkingSchema(): {
|
|
7
8
|
type: string;
|
|
@@ -84,5 +85,32 @@ export declare class OsmSchemaGenerator {
|
|
|
84
85
|
};
|
|
85
86
|
required: string[];
|
|
86
87
|
};
|
|
88
|
+
static getParkingMachinesSchema(): {
|
|
89
|
+
type: string;
|
|
90
|
+
properties: {
|
|
91
|
+
type: {
|
|
92
|
+
type: string;
|
|
93
|
+
enum: string[];
|
|
94
|
+
};
|
|
95
|
+
features: {
|
|
96
|
+
type: string;
|
|
97
|
+
items: {
|
|
98
|
+
type: string;
|
|
99
|
+
properties: {
|
|
100
|
+
type: {
|
|
101
|
+
type: string;
|
|
102
|
+
enum: string[];
|
|
103
|
+
};
|
|
104
|
+
geometry: {
|
|
105
|
+
type: string;
|
|
106
|
+
};
|
|
107
|
+
properties: JSONSchemaType<IOsmParkingMachinesProperties>;
|
|
108
|
+
};
|
|
109
|
+
required: string[];
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
required: string[];
|
|
114
|
+
};
|
|
87
115
|
private static getSchema;
|
|
88
116
|
}
|
|
@@ -4,6 +4,7 @@ exports.OsmSchemaGenerator = void 0;
|
|
|
4
4
|
const OsmEntrancesParkingSchema_1 = require("./OsmEntrancesParkingSchema");
|
|
5
5
|
const OsmParkingSchema_1 = require("./OsmParkingSchema");
|
|
6
6
|
const OsmParkingSpacesSchema_1 = require("./OsmParkingSpacesSchema");
|
|
7
|
+
const OsmParkingMachinesSchema_1 = require("./OsmParkingMachinesSchema");
|
|
7
8
|
class OsmSchemaGenerator {
|
|
8
9
|
static getParkingSchema() {
|
|
9
10
|
return this.getSchema(OsmParkingSchema_1.osmParkingSchema);
|
|
@@ -14,6 +15,9 @@ class OsmSchemaGenerator {
|
|
|
14
15
|
static getEntranceSchema() {
|
|
15
16
|
return this.getSchema(OsmEntrancesParkingSchema_1.osmEntrancesParkingSchema);
|
|
16
17
|
}
|
|
18
|
+
static getParkingMachinesSchema() {
|
|
19
|
+
return this.getSchema(OsmParkingMachinesSchema_1.osmParkingMachinesSchema);
|
|
20
|
+
}
|
|
17
21
|
static getSchema(propertiesSchema) {
|
|
18
22
|
return {
|
|
19
23
|
type: "object",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureCollectionSchemaGenerator.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/osm/FeatureCollectionSchemaGenerator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"FeatureCollectionSchemaGenerator.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/osm/FeatureCollectionSchemaGenerator.ts"],"names":[],"mappings":";;;AAKA,2EAAwE;AACxE,yDAAsD;AACtD,qEAAkE;AAClE,yEAAyF;AAEzF,MAAa,kBAAkB;IACpB,MAAM,CAAC,gBAAgB;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAwB,mCAAgB,CAAC,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,sBAAsB;QAChC,OAAO,IAAI,CAAC,SAAS,CAA8B,+CAAsB,CAAC,CAAC;IAC/E,CAAC;IAEM,MAAM,CAAC,iBAAiB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAyB,qDAAyB,CAAC,CAAC;IAC7E,CAAC;IAEM,MAAM,CAAC,wBAAwB;QAClC,OAAO,IAAI,CAAC,SAAS,CAAgC,mDAAwB,CAAC,CAAC;IACnF,CAAC;IAEO,MAAM,CAAC,SAAS,CAAI,gBAAmC;QAC3D,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,IAAI,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,mBAAmB,CAAC;iBAC9B;gBACD,QAAQ,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACR,IAAI,EAAE;gCACF,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,SAAS,CAAC;6BACpB;4BACD,QAAQ,EAAE;gCACN,IAAI,EAAE,QAAQ;6BACjB;4BACD,UAAU,EAAE,gBAAgB;yBAC/B;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC;qBAC/C;iBACJ;aACJ;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;SACjC,CAAC;IACN,CAAC;CACJ;AA9CD,gDA8CC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.osmParkingMachinesSchema = void 0;
|
|
4
|
+
exports.osmParkingMachinesSchema = {
|
|
5
|
+
type: "object",
|
|
6
|
+
properties: {
|
|
7
|
+
parking_id: { type: "string" },
|
|
8
|
+
osm_id: { type: "string" },
|
|
9
|
+
name: { oneOf: [{ type: "string" }, { type: "null", nullable: true }] },
|
|
10
|
+
},
|
|
11
|
+
required: ["parking_id", "osm_id"],
|
|
12
|
+
additionalProperties: true,
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=OsmParkingMachinesSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OsmParkingMachinesSchema.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/osm/OsmParkingMachinesSchema.ts"],"names":[],"mappings":";;;AAGa,QAAA,wBAAwB,GAAkD;IACnF,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;KAC1E;IACD,QAAQ,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;IAClC,oBAAoB,EAAE,IAAI;CAC7B,CAAC"}
|
package/dist/schema-definitions/datasources/osm/interfaces/IOsmParkingMachinesProperties.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IOsmParkingMachinesProperties.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/datasources/osm/interfaces/IOsmParkingMachinesProperties.ts"],"names":[],"mappings":""}
|
|
@@ -9,9 +9,10 @@ ParkingMachinesModel.tableName = "parking_machines";
|
|
|
9
9
|
ParkingMachinesModel.attributeModel = {
|
|
10
10
|
id: {
|
|
11
11
|
primaryKey: true,
|
|
12
|
-
type: sequelize_1.DataTypes.
|
|
12
|
+
type: sequelize_1.DataTypes.UUID,
|
|
13
13
|
},
|
|
14
14
|
source: sequelize_1.DataTypes.STRING,
|
|
15
|
+
sourceId: sequelize_1.DataTypes.STRING,
|
|
15
16
|
code: sequelize_1.DataTypes.STRING,
|
|
16
17
|
type: sequelize_1.DataTypes.STRING,
|
|
17
18
|
location: sequelize_1.DataTypes.GEOMETRY,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParkingMachinesModel.js","sourceRoot":"","sources":["../../../src/schema-definitions/models/ParkingMachinesModel.ts"],"names":[],"mappings":";;;AACA,mEAAwF;AAGxF,MAAa,oBAAqB,SAAQ,iBAAsB;;AAAhE,
|
|
1
|
+
{"version":3,"file":"ParkingMachinesModel.js","sourceRoot":"","sources":["../../../src/schema-definitions/models/ParkingMachinesModel.ts"],"names":[],"mappings":";;;AACA,mEAAwF;AAGxF,MAAa,oBAAqB,SAAQ,iBAAsB;;AAAhE,oDAyBC;AAxBiB,8BAAS,GAAG,kBAAkB,CAAC;AAW/B,mCAAc,GAA0C;IAClE,EAAE,EAAE;QACA,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,qBAAS,CAAC,IAAI;KACvB;IACD,MAAM,EAAE,qBAAS,CAAC,MAAM;IACxB,QAAQ,EAAE,qBAAS,CAAC,MAAM;IAC1B,IAAI,EAAE,qBAAS,CAAC,MAAM;IACtB,IAAI,EAAE,qBAAS,CAAC,MAAM;IACtB,QAAQ,EAAE,qBAAS,CAAC,QAAQ;IAC5B,SAAS,EAAE,qBAAS,CAAC,IAAI;IACzB,QAAQ,EAAE,qBAAS,CAAC,MAAM;CAC7B,CAAC"}
|
|
@@ -2,9 +2,10 @@ import { Geometry } from "@golemio/core/dist/shared/geojson";
|
|
|
2
2
|
export interface IParkingMachine {
|
|
3
3
|
id: string;
|
|
4
4
|
source: string;
|
|
5
|
-
|
|
5
|
+
sourceId: string;
|
|
6
|
+
code: string | null;
|
|
6
7
|
type: string;
|
|
7
8
|
location: Geometry;
|
|
8
9
|
validFrom: Date;
|
|
9
|
-
tariffId: string;
|
|
10
|
+
tariffId: string | null;
|
|
10
11
|
}
|
|
@@ -33,7 +33,7 @@ Modul slouží k ukládání a poskytování informací o parkování.
|
|
|
33
33
|
|
|
34
34
|
### Data aktivně stahujeme
|
|
35
35
|
|
|
36
|
-
Data stahujeme pravidelně od IPR, TSK, z nového API TSK (značené jako v2) a Smart4City.
|
|
36
|
+
Data stahujeme pravidelně od IPR, TSK, z nového API TSK (značené jako v2) a Smart4City. Dále z blob storage IPT.
|
|
37
37
|
|
|
38
38
|
Pro ZTP parkoviště se z API se stahuje JSON z https://services5.arcgis.com/SBTXIEUGWbqzUecw/arcgis/rest/services/DOP_CUR_DOP_TSK_STANI_ZTP_B/FeatureServer/0/query?outFields=*&where=1%3D1&f=geojson
|
|
39
39
|
Pro parkovací zony se stahuje z https://services5.arcgis.com/SBTXIEUGWbqzUecw/arcgis/rest/services/DOP_CUR_DOP_ZPS_USEKY_P/FeatureServer/0/query?outFields=*&where=1%3D1&f=geojson
|
|
@@ -43,6 +43,7 @@ Pro statické (ručně zadané) tarify se stahuje JSON ze zdroje IPT.
|
|
|
43
43
|
Pro statické (ručně vytvořené) polygony placených parkovišť se stahuje GeoJSON ze zdroje IPT.
|
|
44
44
|
|
|
45
45
|
Data o vjezdech do parkovišť se stahují z ručně vytvořeného zdroje IPT.
|
|
46
|
+
Data o parkovacích automatech OSM se stahují z exportovaného zdroje IPT.
|
|
46
47
|
|
|
47
48
|
#### Zóny placeného stání
|
|
48
49
|
|
|
@@ -356,12 +357,23 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
|
|
|
356
357
|
- název: `dataplatform.parkings.saveOsmEntrancesDataTask`
|
|
357
358
|
- bez parametrů
|
|
358
359
|
- datové zdroje
|
|
359
|
-
- Ipt blob storage ručně tvořený zdroj (http)
|
|
360
|
+
- Ipt blob storage ručně tvořený zdroj (http)
|
|
360
361
|
- geojson formát
|
|
361
362
|
- transformace
|
|
362
363
|
- [OsmEntrancesTransformation](../src/integration-engine/transformations/osm/OsmEntrancesTransformation.ts)
|
|
363
364
|
- data modely
|
|
364
|
-
- EntranceModel -> (schéma parkings) `parking_entrances`
|
|
365
|
+
- EntranceModel -> (schéma parkings) `parking_entrances`
|
|
366
|
+
|
|
367
|
+
#### Task _SaveOsmParkingMachinesTask_
|
|
368
|
+
|
|
369
|
+
- vstupní rabbitmq fronta:
|
|
370
|
+
- název: `dataplatform.parkings.saveOsmParkingMachinesTask`
|
|
371
|
+
- bez parametrů
|
|
372
|
+
- datové zdroje:
|
|
373
|
+
- Ipt blob storage exportovaný zdroj (http)
|
|
374
|
+
- geojson formát
|
|
375
|
+
- transformace: [OsmParkingMachinesTransformation](../src/integration-engine/transformations/osm/OsmParkingMachinesTransformation.ts)
|
|
376
|
+
- cílová tabulka: `parkings_machines`
|
|
365
377
|
|
|
366
378
|
#### Task _GenerateIptOictParkingJobsTask_
|
|
367
379
|
|
|
@@ -430,12 +442,12 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
|
|
|
430
442
|
- název: `dataplatform.parkings.saveManualEntrancesDataTask`
|
|
431
443
|
- bez parametrů
|
|
432
444
|
- datové zdroje
|
|
433
|
-
- Ipt blob storage ručně tvořený zdroj (http)
|
|
445
|
+
- Ipt blob storage ručně tvořený zdroj (http)
|
|
434
446
|
- geojson formát
|
|
435
447
|
- transformace
|
|
436
448
|
- [EntrancesManualTransformation](../src/integration-engine/transformations/osm/EntrancesManualTransformation.ts)
|
|
437
449
|
- data modely
|
|
438
|
-
- EntranceModel -> (schéma parkings) `parking_entrances`
|
|
450
|
+
- EntranceModel -> (schéma parkings) `parking_entrances`
|
|
439
451
|
|
|
440
452
|
### Worker _ParkingsWorker_
|
|
441
453
|
|
package/docs/openapi-output.yaml
CHANGED
|
@@ -948,9 +948,8 @@ paths:
|
|
|
948
948
|
required: true
|
|
949
949
|
schema:
|
|
950
950
|
type: string
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
description: 'UUID of the parking machine to retrieve'
|
|
951
|
+
example: 'tsk_v2-4521afac-66db-4680-abc5-0006837d977a'
|
|
952
|
+
description: 'ID of the parking machine to retrieve'
|
|
954
953
|
responses:
|
|
955
954
|
'200':
|
|
956
955
|
description: 'Successful response'
|
|
@@ -1765,7 +1764,7 @@ components:
|
|
|
1765
1764
|
opening_hours:
|
|
1766
1765
|
type: array
|
|
1767
1766
|
nullable: true
|
|
1768
|
-
items:
|
|
1767
|
+
items:
|
|
1769
1768
|
$ref: '#/components/schemas/OpeningHours'
|
|
1770
1769
|
has_measurement_info:
|
|
1771
1770
|
type: boolean
|
|
@@ -1983,7 +1982,7 @@ components:
|
|
|
1983
1982
|
nullable: true
|
|
1984
1983
|
dimension:
|
|
1985
1984
|
type: object
|
|
1986
|
-
properties:
|
|
1985
|
+
properties:
|
|
1987
1986
|
max_height:
|
|
1988
1987
|
type: number
|
|
1989
1988
|
nullable: true
|
|
@@ -2293,8 +2292,8 @@ components:
|
|
|
2293
2292
|
properties:
|
|
2294
2293
|
id:
|
|
2295
2294
|
type: string
|
|
2296
|
-
|
|
2297
|
-
description:
|
|
2295
|
+
example: 'tsk_v2-4521afac-66db-4680-abc5-0006837d977a'
|
|
2296
|
+
description: ID of the parking machine. Formatted as primary_source-primary_source_id
|
|
2298
2297
|
primary_source:
|
|
2299
2298
|
type: string
|
|
2300
2299
|
enum:
|
|
@@ -2306,7 +2305,7 @@ components:
|
|
|
2306
2305
|
description: The ID defined by the primary source.
|
|
2307
2306
|
code:
|
|
2308
2307
|
type: string
|
|
2309
|
-
description:
|
|
2308
|
+
description: TSK parking machine identification code.
|
|
2310
2309
|
machine_type:
|
|
2311
2310
|
type: string
|
|
2312
2311
|
enum:
|
|
@@ -2324,6 +2323,7 @@ components:
|
|
|
2324
2323
|
type: string
|
|
2325
2324
|
format: uuid
|
|
2326
2325
|
description: The UUID identifier for the tariff connected to the parking machine.
|
|
2326
|
+
nullable: true
|
|
2327
2327
|
required:
|
|
2328
2328
|
- id
|
|
2329
2329
|
- primary_source
|