@golemio/parkings 1.6.1-dev.1048720704 → 1.6.1-dev.1068064627
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 +5 -2
- package/db/migrations/postgresql/20231108130727-ipt-api-v3-allowed.js +53 -0
- package/db/migrations/postgresql/sqls/20231108130727-ipt-api-v3-allowed-down.sql +2 -0
- package/db/migrations/postgresql/sqls/20231108130727-ipt-api-v3-allowed-up.sql +2 -0
- package/dist/helpers/data-access/CachedParkingSourcesRepository.d.ts +1 -1
- package/dist/helpers/data-access/CachedParkingSourcesRepository.js +7 -6
- package/dist/helpers/data-access/CachedParkingSourcesRepository.js.map +1 -1
- package/dist/helpers/interfaces/IParkingSource.d.ts +2 -1
- package/dist/input-gateway/controllers/ParkingSourcesController.d.ts +9 -0
- package/dist/input-gateway/controllers/ParkingSourcesController.js +40 -0
- package/dist/input-gateway/controllers/ParkingSourcesController.js.map +1 -0
- package/dist/input-gateway/index.d.ts +2 -0
- package/dist/input-gateway/index.js +5 -0
- package/dist/input-gateway/index.js.map +1 -1
- package/dist/input-gateway/routers/ParkingSourcesRouter.d.ts +12 -0
- package/dist/input-gateway/routers/ParkingSourcesRouter.js +39 -0
- package/dist/input-gateway/routers/ParkingSourcesRouter.js.map +1 -0
- package/dist/integration-engine/index.d.ts +3 -1
- package/dist/integration-engine/index.js +3 -1
- package/dist/integration-engine/index.js.map +1 -1
- package/dist/integration-engine/repositories/ParkingSourcesRepository.d.ts +4 -0
- package/dist/integration-engine/repositories/ParkingSourcesRepository.js +23 -0
- package/dist/integration-engine/repositories/ParkingSourcesRepository.js.map +1 -0
- package/dist/integration-engine/workers/ParkingSourcesWorker.d.ts +5 -0
- package/dist/integration-engine/workers/ParkingSourcesWorker.js +18 -0
- package/dist/integration-engine/workers/ParkingSourcesWorker.js.map +1 -0
- package/dist/integration-engine/workers/schemas/ParkingSourceSchema.d.ts +9 -0
- package/dist/integration-engine/workers/schemas/ParkingSourceSchema.js +44 -0
- package/dist/integration-engine/workers/schemas/ParkingSourceSchema.js.map +1 -0
- package/dist/integration-engine/workers/tasks/UpdateParkingSourceTask.d.ts +14 -0
- package/dist/integration-engine/workers/tasks/UpdateParkingSourceTask.js +36 -0
- package/dist/integration-engine/workers/tasks/UpdateParkingSourceTask.js.map +1 -0
- package/dist/output-gateway/models/ParkingsModel.d.ts +3 -2
- package/dist/output-gateway/models/ParkingsModel.js +6 -7
- package/dist/output-gateway/models/ParkingsModel.js.map +1 -1
- package/dist/output-gateway/models/ParkingsTariffsModel.d.ts +3 -2
- package/dist/output-gateway/models/ParkingsTariffsModel.js +4 -5
- package/dist/output-gateway/models/ParkingsTariffsModel.js.map +1 -1
- package/dist/output-gateway/models/index.js +4 -2
- package/dist/output-gateway/models/index.js.map +1 -1
- package/dist/output-gateway/routers/v3/helpers/PrimarySourceValidator.js +3 -3
- package/dist/output-gateway/routers/v3/helpers/PrimarySourceValidator.js.map +1 -1
- package/dist/schema-definitions/datasources/InputParkingSourceSchema.d.ts +3 -0
- package/dist/schema-definitions/datasources/InputParkingSourceSchema.js +17 -0
- package/dist/schema-definitions/datasources/InputParkingSourceSchema.js.map +1 -0
- package/dist/schema-definitions/models/ParkingSourcesModel.d.ts +12 -0
- package/dist/schema-definitions/models/ParkingSourcesModel.js +20 -0
- package/dist/schema-definitions/models/ParkingSourcesModel.js.map +1 -0
- package/docs/implementation-documentation.md +11 -1
- package/docs/openapi-admin-input.yaml +90 -0
- package/package.json +2 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
INSERT INTO parking_sources ("source",open_data,
|
|
2
|
-
('tsk_v2',false,true,'test','{"email": "parking@tsk-praha.cz", "phone": "+420 257 015 257", "web_url": "https://parking.praha.eu/", "term_of_use_url": "https://parking.praha.eu/cs/moznosti-parkovani-v-praze/parkovani-v-zonach/"}')
|
|
1
|
+
INSERT INTO parking_sources ("source",open_data,api_v3_allowed, legacy_api_allowed,payment_url,contact) VALUES
|
|
2
|
+
('tsk_v2',false,true,false,'test','{"email": "parking@tsk-praha.cz", "phone": "+420 257 015 257", "web_url": "https://parking.praha.eu/", "term_of_use_url": "https://parking.praha.eu/cs/moznosti-parkovani-v-praze/parkovani-v-zonach/"}'),
|
|
3
|
+
('tsk',false,false,true,'test','{"email": "parking@tsk-praha.cz", "phone": "+420 257 015 257", "web_url": "https://parking.praha.eu/", "term_of_use_url": "https://parking.praha.eu/cs/moznosti-parkovani-v-praze/parkovani-v-zonach/"}'),
|
|
4
|
+
('korid',false,false,true,'https://parking.liberec.cz/','{"email": "pomoc@parking.liberec.cz", "phone": "+420604295403", "web_url": "https://parking.liberec.cz/", "term_of_use_url": "https://www.liberec.cz/cz/prakticke-informace/doprava-udrzba-komunikaci/parkovaci-mista/parkovaci-mista.html"}'),
|
|
5
|
+
('ipr',false,false,true,null,null);
|
|
3
6
|
|
|
4
7
|
INSERT INTO "parking_machines" (id,"source",code,"type","location",valid_from,tariff_id) VALUES
|
|
5
8
|
('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');
|
|
@@ -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', '20231108130727-ipt-api-v3-allowed-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', '20231108130727-ipt-api-v3-allowed-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
|
+
};
|
|
@@ -8,5 +8,5 @@ export declare class CachedParkingSourcesRepository extends AbstractCachedReposi
|
|
|
8
8
|
constructor(connnector: IDatabaseConnector, log: ILogger, cacheTTLInSeconds?: number);
|
|
9
9
|
protected getAllInternal(): Promise<IParkingSource[]>;
|
|
10
10
|
getV3Sources(): Promise<string[]>;
|
|
11
|
-
|
|
11
|
+
getLegacySources(): Promise<string[]>;
|
|
12
12
|
}
|
|
@@ -21,18 +21,19 @@ class CachedParkingSourcesRepository extends AbstractCachedRepository_1.Abstract
|
|
|
21
21
|
}
|
|
22
22
|
getAllInternal() {
|
|
23
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
return yield this.connector
|
|
25
|
-
|
|
26
|
-
.query(`SELECT source, open_data, ipt_allowed, payment_url, contact FROM ${this.schema}.${this.tableName}`, { type: sequelize_1.QueryTypes.SELECT, raw: true });
|
|
24
|
+
return yield this.connector.getConnection().query(`SELECT source, open_data, api_v3_allowed, legacy_api_allowed, payment_url, contact
|
|
25
|
+
FROM ${this.schema}.${this.tableName}`, { type: sequelize_1.QueryTypes.SELECT, raw: true });
|
|
27
26
|
});
|
|
28
27
|
}
|
|
29
28
|
getV3Sources() {
|
|
30
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
return (yield this.getAll()).map((element) => element.source);
|
|
30
|
+
return (yield this.getAll()).filter((element) => element.api_v3_allowed).map((element) => element.source);
|
|
32
31
|
});
|
|
33
32
|
}
|
|
34
|
-
|
|
35
|
-
return
|
|
33
|
+
getLegacySources() {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
return (yield this.getAll()).filter((element) => element.legacy_api_allowed).map((element) => element.source);
|
|
36
|
+
});
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
39
|
exports.CachedParkingSourcesRepository = CachedParkingSourcesRepository;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CachedParkingSourcesRepository.js","sourceRoot":"","sources":["../../../src/helpers/data-access/CachedParkingSourcesRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mDAAgC;AAEhC,oIAAiI;AAEjI,mEAAiE;AAEjE,MAAa,8BAA+B,SAAQ,mDAAwC;IAIxF,YAAY,UAA8B,EAAE,GAAY,EAAE,oBAA4B,EAAE,GAAG,CAAC;QACxF,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAJvC,WAAM,GAAW,eAAQ,CAAC,QAAQ,CAAC;QACnC,cAAS,GAAW,iBAAiB,CAAC;IAI7C,CAAC;IAEe,cAAc;;YAC1B,OAAO,MAAM,IAAI,CAAC,SAAS
|
|
1
|
+
{"version":3,"file":"CachedParkingSourcesRepository.js","sourceRoot":"","sources":["../../../src/helpers/data-access/CachedParkingSourcesRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mDAAgC;AAEhC,oIAAiI;AAEjI,mEAAiE;AAEjE,MAAa,8BAA+B,SAAQ,mDAAwC;IAIxF,YAAY,UAA8B,EAAE,GAAY,EAAE,oBAA4B,EAAE,GAAG,CAAC;QACxF,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAJvC,WAAM,GAAW,eAAQ,CAAC,QAAQ,CAAC;QACnC,cAAS,GAAW,iBAAiB,CAAC;IAI7C,CAAC;IAEe,cAAc;;YAC1B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,KAAK,CAC7C;oBACQ,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,EACvC,EAAE,IAAI,EAAE,sBAAU,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CACzC,CAAC;QACN,CAAC;KAAA;IAEY,YAAY;;YACrB,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9G,CAAC;KAAA;IAEY,gBAAgB;;YACzB,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClH,CAAC;KAAA;CACJ;AAvBD,wEAuBC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseController } from "@golemio/core/dist/input-gateway/controllers";
|
|
2
|
+
import { JSONSchemaValidator } from "@golemio/core/dist/shared/golemio-validator";
|
|
3
|
+
export declare class ParkingSourcesController extends BaseController {
|
|
4
|
+
name: string;
|
|
5
|
+
protected validator: JSONSchemaValidator;
|
|
6
|
+
protected queuePrefix: string;
|
|
7
|
+
constructor();
|
|
8
|
+
processData: (inputData: any) => Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ParkingSourcesController = void 0;
|
|
13
|
+
const controllers_1 = require("@golemio/core/dist/input-gateway/controllers");
|
|
14
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
15
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
16
|
+
const InputParkingSourceSchema_1 = require("../../schema-definitions/datasources/InputParkingSourceSchema");
|
|
17
|
+
class ParkingSourcesController extends controllers_1.BaseController {
|
|
18
|
+
constructor() {
|
|
19
|
+
super("ParkingSources", new golemio_validator_1.JSONSchemaValidator("ParkingSource", InputParkingSourceSchema_1.InputParkingSourceSchema));
|
|
20
|
+
this.processData = (inputData) => __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
try {
|
|
22
|
+
yield this.validator.Validate(inputData);
|
|
23
|
+
const queue = "input." + this.queuePrefix + ".updateParkingSource";
|
|
24
|
+
yield this.sendMessageToExchange(queue, JSON.stringify(inputData), {
|
|
25
|
+
persistent: true,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
if (err instanceof golemio_errors_1.AbstractGolemioError) {
|
|
30
|
+
throw err;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
throw new golemio_errors_1.GeneralError("Error while validating input data.", this.name, err, 422);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.ParkingSourcesController = ParkingSourcesController;
|
|
40
|
+
//# sourceMappingURL=ParkingSourcesController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParkingSourcesController.js","sourceRoot":"","sources":["../../../src/input-gateway/controllers/ParkingSourcesController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAA8E;AAC9E,6EAA8F;AAC9F,mFAAkF;AAClF,4GAAqF;AAErF,MAAa,wBAAyB,SAAQ,4BAAc;IAKxD;QACI,KAAK,CAAC,gBAAgB,EAAE,IAAI,uCAAmB,CAAC,eAAe,EAAE,mDAAwB,CAAC,CAAC,CAAC;QAGhG,gBAAW,GAAG,CAAO,SAAc,EAAiB,EAAE;YAClD,IAAI;gBACA,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzC,MAAM,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC;gBAEnE,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;oBAC/D,UAAU,EAAE,IAAI;iBACnB,CAAC,CAAC;aACN;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;qBAAM;oBACH,MAAM,IAAI,6BAAY,CAAC,oCAAoC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;iBACrF;aACJ;QACL,CAAC,CAAA,CAAC;IAjBF,CAAC;CAkBJ;AAzBD,4DAyBC"}
|
|
@@ -22,7 +22,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
26
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
29
|
exports.KoridParkings = void 0;
|
|
27
30
|
exports.KoridParkings = __importStar(require("./korid-parkings"));
|
|
31
|
+
__exportStar(require("./routers/ParkingSourcesRouter"), exports);
|
|
32
|
+
__exportStar(require("./controllers/ParkingSourcesController"), exports);
|
|
28
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/input-gateway/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/input-gateway/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kEAAkD;AAClD,iEAA+C;AAC/C,yEAAuD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="express" />
|
|
2
|
+
import { Router } from "@golemio/core/dist/shared/express";
|
|
3
|
+
import { ParkingSourcesController } from "../controllers/ParkingSourcesController";
|
|
4
|
+
export declare class ParkingSourcesRouter {
|
|
5
|
+
private sourcesController;
|
|
6
|
+
router: Router;
|
|
7
|
+
constructor(sourcesController: ParkingSourcesController);
|
|
8
|
+
private initRoutes;
|
|
9
|
+
private postParkingSource;
|
|
10
|
+
}
|
|
11
|
+
declare const parkingSourcesRouter: Router;
|
|
12
|
+
export { parkingSourcesRouter };
|
|
@@ -0,0 +1,39 @@
|
|
|
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.parkingSourcesRouter = exports.ParkingSourcesRouter = void 0;
|
|
13
|
+
const express_1 = require("@golemio/core/dist/shared/express");
|
|
14
|
+
const helpers_1 = require("@golemio/core/dist/input-gateway/helpers");
|
|
15
|
+
const ParkingSourcesController_1 = require("../controllers/ParkingSourcesController");
|
|
16
|
+
class ParkingSourcesRouter {
|
|
17
|
+
constructor(sourcesController) {
|
|
18
|
+
this.sourcesController = sourcesController;
|
|
19
|
+
this.initRoutes = () => {
|
|
20
|
+
this.router.post("/source", (0, helpers_1.checkContentTypeMiddleware)(["application/json"]), this.postParkingSource);
|
|
21
|
+
};
|
|
22
|
+
this.postParkingSource = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
try {
|
|
24
|
+
yield this.sourcesController.processData(req.body);
|
|
25
|
+
res.sendStatus(204);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
next(err);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
this.router = (0, express_1.Router)();
|
|
32
|
+
this.initRoutes();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.ParkingSourcesRouter = ParkingSourcesRouter;
|
|
36
|
+
const controller = new ParkingSourcesController_1.ParkingSourcesController();
|
|
37
|
+
const parkingSourcesRouter = new ParkingSourcesRouter(controller).router;
|
|
38
|
+
exports.parkingSourcesRouter = parkingSourcesRouter;
|
|
39
|
+
//# sourceMappingURL=ParkingSourcesRouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParkingSourcesRouter.js","sourceRoot":"","sources":["../../../src/input-gateway/routers/ParkingSourcesRouter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAA4F;AAC5F,sEAAsF;AACtF,sFAAoF;AAEpF,MAAa,oBAAoB;IAG7B,YAAoB,iBAA2C;QAA3C,sBAAiB,GAAjB,iBAAiB,CAA0B;QAKvD,eAAU,GAAG,GAAS,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAA,oCAA0B,EAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1G,CAAC,CAAC;QAEM,sBAAiB,GAAG,CAAO,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAiB,EAAE;YACjG,IAAI;gBACA,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACnD,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACvB;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAA,CAAC;QAfE,IAAI,CAAC,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;CAcJ;AApBD,oDAoBC;AAED,MAAM,UAAU,GAAG,IAAI,mDAAwB,EAAE,CAAC;AAElD,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AAChE,oDAAoB"}
|
|
@@ -2,6 +2,7 @@ import { StaticTariffsWorker } from "./workers/StaticTariffsWorker";
|
|
|
2
2
|
import { UpdateAddressWorker } from "./workers/UpdateAddressWorker";
|
|
3
3
|
import { NewParkingsWorker } from "./workers/NewParkingsWorker";
|
|
4
4
|
import { TskParkingWorker } from "./workers/TskParkingWorker";
|
|
5
|
+
import { ParkingSourcesWorker } from "./workers/ParkingSourcesWorker";
|
|
5
6
|
export * from "./ParkingsWorker";
|
|
6
7
|
export * from "./transformations/KoridParkingDataTransformation";
|
|
7
8
|
export * from "./transformations/KoridParkingConfigTransformation";
|
|
@@ -11,4 +12,5 @@ export * from "./ZtpParkingZones/ZtpParkingZonesTransformation";
|
|
|
11
12
|
export * from "./ZtpParkingZones/ZtpParkingZonesWorker";
|
|
12
13
|
export * from "./workers/StaticTariffsWorker";
|
|
13
14
|
export * from "./workers/TskParkingWorker";
|
|
14
|
-
export
|
|
15
|
+
export * from "./workers/ParkingSourcesWorker";
|
|
16
|
+
export declare const workers: (typeof StaticTariffsWorker | typeof UpdateAddressWorker | typeof NewParkingsWorker | typeof TskParkingWorker | typeof ParkingSourcesWorker)[];
|
|
@@ -20,6 +20,7 @@ const StaticTariffsWorker_1 = require("./workers/StaticTariffsWorker");
|
|
|
20
20
|
const UpdateAddressWorker_1 = require("./workers/UpdateAddressWorker");
|
|
21
21
|
const NewParkingsWorker_1 = require("./workers/NewParkingsWorker");
|
|
22
22
|
const TskParkingWorker_1 = require("./workers/TskParkingWorker");
|
|
23
|
+
const ParkingSourcesWorker_1 = require("./workers/ParkingSourcesWorker");
|
|
23
24
|
__exportStar(require("./ParkingsWorker"), exports);
|
|
24
25
|
__exportStar(require("./transformations/KoridParkingDataTransformation"), exports);
|
|
25
26
|
__exportStar(require("./transformations/KoridParkingConfigTransformation"), exports);
|
|
@@ -29,5 +30,6 @@ __exportStar(require("./ZtpParkingZones/ZtpParkingZonesTransformation"), exports
|
|
|
29
30
|
__exportStar(require("./ZtpParkingZones/ZtpParkingZonesWorker"), exports);
|
|
30
31
|
__exportStar(require("./workers/StaticTariffsWorker"), exports);
|
|
31
32
|
__exportStar(require("./workers/TskParkingWorker"), exports);
|
|
32
|
-
|
|
33
|
+
__exportStar(require("./workers/ParkingSourcesWorker"), exports);
|
|
34
|
+
exports.workers = [StaticTariffsWorker_1.StaticTariffsWorker, UpdateAddressWorker_1.UpdateAddressWorker, NewParkingsWorker_1.NewParkingsWorker, TskParkingWorker_1.TskParkingWorker, ParkingSourcesWorker_1.ParkingSourcesWorker];
|
|
33
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,uEAAsE;AACtE,uEAAsE;AACtE,mEAAgE;AAChE,iEAAgE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration-engine/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,uEAAsE;AACtE,uEAAsE;AACtE,mEAAgE;AAChE,iEAAgE;AAChE,yEAAwE;AAExE,mDAAiC;AACjC,mFAAiE;AACjE,qFAAmE;AACnE,qDAAmC;AACnC,qFAAmE;AACnE,kFAAgE;AAChE,0EAAwD;AACxD,gEAA8C;AAC9C,6DAA2C;AAC3C,iEAA+C;AAElC,QAAA,OAAO,GAAG,CAAC,yCAAmB,EAAE,yCAAmB,EAAE,qCAAiB,EAAE,mCAAgB,EAAE,2CAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParkingSourcesRepository = void 0;
|
|
4
|
+
const _sch_1 = require("../../schema-definitions");
|
|
5
|
+
const ParkingSourcesModel_1 = require("../../schema-definitions/models/ParkingSourcesModel");
|
|
6
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
7
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
8
|
+
const InputParkingSourceSchema_1 = require("../../schema-definitions/datasources/InputParkingSourceSchema");
|
|
9
|
+
class ParkingSourcesRepository extends integration_engine_1.PostgresModel {
|
|
10
|
+
constructor() {
|
|
11
|
+
super("IEParkingSourcesRepository", {
|
|
12
|
+
outputSequelizeAttributes: ParkingSourcesModel_1.ParkingSourcesModel.attributeModel,
|
|
13
|
+
pgSchema: _sch_1.Parkings.pgSchema,
|
|
14
|
+
pgTableName: ParkingSourcesModel_1.ParkingSourcesModel.tableName,
|
|
15
|
+
savingType: "insertOrUpdate",
|
|
16
|
+
sequelizeAdditionalSettings: {
|
|
17
|
+
timestamps: false,
|
|
18
|
+
},
|
|
19
|
+
}, new golemio_validator_1.JSONSchemaValidator("ParkingSourcePgModelValidator", InputParkingSourceSchema_1.InputParkingSourceSchema));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.ParkingSourcesRepository = ParkingSourcesRepository;
|
|
23
|
+
//# sourceMappingURL=ParkingSourcesRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParkingSourcesRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repositories/ParkingSourcesRepository.ts"],"names":[],"mappings":";;;AAAA,mDAAgC;AAChC,6FAAsE;AACtE,8EAA8E;AAC9E,mFAAkF;AAClF,4GAAqF;AAErF,MAAa,wBAAyB,SAAQ,kCAAa;IACvD;QACI,KAAK,CACD,4BAA4B,EAC5B;YACI,yBAAyB,EAAE,yCAAmB,CAAC,cAAc;YAC7D,QAAQ,EAAE,eAAQ,CAAC,QAAQ;YAC3B,WAAW,EAAE,yCAAmB,CAAC,SAAS;YAC1C,UAAU,EAAE,gBAAgB;YAC5B,2BAA2B,EAAE;gBACzB,UAAU,EAAE,KAAK;aACpB;SACJ,EACD,IAAI,uCAAmB,CAAC,+BAA+B,EAAE,mDAAwB,CAAC,CACrF,CAAC;IACN,CAAC;CACJ;AAhBD,4DAgBC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParkingSourcesWorker = void 0;
|
|
4
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
5
|
+
const UpdateParkingSourceTask_1 = require("./tasks/UpdateParkingSourceTask");
|
|
6
|
+
const ParkingSourcesRepository_1 = require("../repositories/ParkingSourcesRepository");
|
|
7
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
8
|
+
const ioc_1 = require("@golemio/core/dist/integration-engine/ioc");
|
|
9
|
+
class ParkingSourcesWorker extends integration_engine_1.AbstractWorker {
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
this.name = "ParkingSources";
|
|
13
|
+
const task = new UpdateParkingSourceTask_1.UpdateParkingSourceTask(this.getQueuePrefix(), ioc_1.IntegrationEngineContainer.resolve(CoreToken_1.CoreToken.Logger), new ParkingSourcesRepository_1.ParkingSourcesRepository());
|
|
14
|
+
this.registerTask(task);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.ParkingSourcesWorker = ParkingSourcesWorker;
|
|
18
|
+
//# sourceMappingURL=ParkingSourcesWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParkingSourcesWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/ParkingSourcesWorker.ts"],"names":[],"mappings":";;;AAAA,8EAAuE;AACvE,6EAAoF;AACpF,uFAAqF;AACrF,wEAAqE;AAErE,mEAAuF;AAEvF,MAAa,oBAAqB,SAAQ,mCAAc;IAGpD;QACI,KAAK,EAAE,CAAC;QAHO,SAAI,GAAW,gBAAgB,CAAC;QAI/C,MAAM,IAAI,GAAG,IAAI,iDAAuB,CACpC,IAAI,CAAC,cAAc,EAAE,EACrB,gCAA0B,CAAC,OAAO,CAAU,qBAAS,CAAC,MAAM,CAAC,EAC7D,IAAI,mDAAwB,EAAE,CACjC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACJ;AAZD,oDAYC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IParkingSource } from "../../../helpers/interfaces/IParkingSource";
|
|
2
|
+
export declare class UpdateParkingSourceValidationSchema implements IParkingSource {
|
|
3
|
+
source: string;
|
|
4
|
+
open_data: boolean;
|
|
5
|
+
api_v3_allowed: boolean;
|
|
6
|
+
legacy_api_allowed: boolean;
|
|
7
|
+
payment_url: string | null;
|
|
8
|
+
contact: object | null;
|
|
9
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.UpdateParkingSourceValidationSchema = void 0;
|
|
13
|
+
const class_validator_1 = require("@golemio/core/dist/shared/class-validator");
|
|
14
|
+
class UpdateParkingSourceValidationSchema {
|
|
15
|
+
}
|
|
16
|
+
exports.UpdateParkingSourceValidationSchema = UpdateParkingSourceValidationSchema;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsString)(),
|
|
19
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], UpdateParkingSourceValidationSchema.prototype, "source", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsBoolean)(),
|
|
24
|
+
__metadata("design:type", Boolean)
|
|
25
|
+
], UpdateParkingSourceValidationSchema.prototype, "open_data", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, class_validator_1.IsBoolean)(),
|
|
28
|
+
__metadata("design:type", Boolean)
|
|
29
|
+
], UpdateParkingSourceValidationSchema.prototype, "api_v3_allowed", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, class_validator_1.IsBoolean)(),
|
|
32
|
+
__metadata("design:type", Boolean)
|
|
33
|
+
], UpdateParkingSourceValidationSchema.prototype, "legacy_api_allowed", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, class_validator_1.IsOptional)(),
|
|
36
|
+
(0, class_validator_1.IsString)(),
|
|
37
|
+
__metadata("design:type", Object)
|
|
38
|
+
], UpdateParkingSourceValidationSchema.prototype, "payment_url", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, class_validator_1.IsOptional)(),
|
|
41
|
+
(0, class_validator_1.IsObject)(),
|
|
42
|
+
__metadata("design:type", Object)
|
|
43
|
+
], UpdateParkingSourceValidationSchema.prototype, "contact", void 0);
|
|
44
|
+
//# sourceMappingURL=ParkingSourceSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParkingSourceSchema.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/schemas/ParkingSourceSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAAkH;AAGlH,MAAa,mCAAmC;CAqB/C;AArBD,kFAqBC;AAlBG;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;mEACG;AAGhB;IADC,IAAA,2BAAS,GAAE;;sEACQ;AAGpB;IADC,IAAA,2BAAS,GAAE;;2EACa;AAGzB;IADC,IAAA,2BAAS,GAAE;;+EACiB;AAI7B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;wEACiB;AAI5B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;oEACa"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AbstractTask } from "@golemio/core/dist/integration-engine";
|
|
2
|
+
import { ILogger } from "@golemio/core/dist/helpers";
|
|
3
|
+
import { ParkingSourcesRepository } from "../../repositories/ParkingSourcesRepository";
|
|
4
|
+
import { IParkingSource } from "../../../helpers/interfaces/IParkingSource";
|
|
5
|
+
import { UpdateParkingSourceValidationSchema } from "../schemas/ParkingSourceSchema";
|
|
6
|
+
export declare class UpdateParkingSourceTask extends AbstractTask<IParkingSource> {
|
|
7
|
+
private log;
|
|
8
|
+
private repository;
|
|
9
|
+
readonly queueName = "updateParkingSource";
|
|
10
|
+
readonly queueTtl: number;
|
|
11
|
+
readonly schema: typeof UpdateParkingSourceValidationSchema;
|
|
12
|
+
constructor(queuePrefix: string, log: ILogger, repository: ParkingSourcesRepository);
|
|
13
|
+
protected execute(data: IParkingSource): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
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.UpdateParkingSourceTask = void 0;
|
|
13
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
14
|
+
const ParkingSourceSchema_1 = require("../schemas/ParkingSourceSchema");
|
|
15
|
+
class UpdateParkingSourceTask extends integration_engine_1.AbstractTask {
|
|
16
|
+
constructor(queuePrefix, log, repository) {
|
|
17
|
+
super(queuePrefix);
|
|
18
|
+
this.log = log;
|
|
19
|
+
this.repository = repository;
|
|
20
|
+
this.queueName = "updateParkingSource";
|
|
21
|
+
this.queueTtl = 3 * 60 * 60 * 1000; // 3h
|
|
22
|
+
this.schema = ParkingSourceSchema_1.UpdateParkingSourceValidationSchema;
|
|
23
|
+
}
|
|
24
|
+
execute(data) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
try {
|
|
27
|
+
yield this.repository.save(data);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
this.log.error(`Error while updating parking source: ${err}`);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.UpdateParkingSourceTask = UpdateParkingSourceTask;
|
|
36
|
+
//# sourceMappingURL=UpdateParkingSourceTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UpdateParkingSourceTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/UpdateParkingSourceTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8EAAqE;AAIrE,wEAA8F;AAE9F,MAAa,uBAAwB,SAAQ,iCAA4B;IAKrE,YAAY,WAAmB,EAAU,GAAY,EAAU,UAAoC;QAC/F,KAAK,CAAC,WAAW,CAAC,CAAC;QADkB,QAAG,GAAH,GAAG,CAAS;QAAU,eAAU,GAAV,UAAU,CAA0B;QAJnF,cAAS,GAAG,qBAAqB,CAAC;QAClC,aAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK;QACpC,WAAM,GAAG,yDAAmC,CAAC;IAI7D,CAAC;IAEe,OAAO,CAAC,IAAoB;;YACxC,IAAI;gBACA,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpC;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;aACjE;QACL,CAAC;KAAA;CACJ;AAhBD,0DAgBC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CachedParkingSourcesRepository } from "../../helpers/data-access/CachedParkingSourcesRepository";
|
|
1
2
|
import { IGetParkingQueryOptions } from "./interfaces/IGetQueryOptions";
|
|
2
3
|
import { IPostalAddress } from "@golemio/core/dist/integration-engine/helpers/GeocodeApi";
|
|
3
4
|
import { SequelizeModel } from "@golemio/core/dist/output-gateway";
|
|
@@ -32,10 +33,10 @@ export interface IParkings {
|
|
|
32
33
|
};
|
|
33
34
|
}
|
|
34
35
|
export declare class ParkingsModel extends SequelizeModel {
|
|
36
|
+
private parkingSourcesRepository;
|
|
35
37
|
static MODEL_RELATION_ACTUAL_MEASUREMENTS: string;
|
|
36
38
|
static MODEL_RELATION_PARKING_LOCATIONS: string;
|
|
37
|
-
|
|
38
|
-
constructor();
|
|
39
|
+
constructor(parkingSourcesRepository: CachedParkingSourcesRepository);
|
|
39
40
|
Associate: (m: IParkingsModels) => void;
|
|
40
41
|
GetAll: (options?: IGetParkingQueryOptions) => Promise<IParkings[]>;
|
|
41
42
|
GetOne: (id: string) => Promise<IParkings>;
|
|
@@ -33,7 +33,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
35
|
exports.ParkingsModel = void 0;
|
|
36
|
-
const CachedParkingSourcesRepository_1 = require("../../helpers/data-access/CachedParkingSourcesRepository");
|
|
37
36
|
const DetailAttributesHelper_1 = require("./helpers/DetailAttributesHelper");
|
|
38
37
|
const index_1 = require("../../schema-definitions/index");
|
|
39
38
|
const output_gateway_1 = require("@golemio/core/dist/output-gateway");
|
|
@@ -41,10 +40,11 @@ const database_1 = require("@golemio/core/dist/output-gateway/database");
|
|
|
41
40
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
42
41
|
const sequelize_1 = __importStar(require("@golemio/core/dist/shared/sequelize"));
|
|
43
42
|
class ParkingsModel extends output_gateway_1.SequelizeModel {
|
|
44
|
-
constructor() {
|
|
43
|
+
constructor(parkingSourcesRepository) {
|
|
45
44
|
super(index_1.Parkings.name, index_1.Parkings.parkings.pgTableName, index_1.Parkings.parkings.outputSequelizeAttributes, {
|
|
46
45
|
schema: index_1.Parkings.pgSchema,
|
|
47
46
|
});
|
|
47
|
+
this.parkingSourcesRepository = parkingSourcesRepository;
|
|
48
48
|
this.Associate = (m) => {
|
|
49
49
|
this.sequelizeModel.hasOne(m.ParkingsMeasurementsActualModel.sequelizeModel, {
|
|
50
50
|
as: ParkingsModel.MODEL_RELATION_ACTUAL_MEASUREMENTS,
|
|
@@ -77,7 +77,7 @@ class ParkingsModel extends output_gateway_1.SequelizeModel {
|
|
|
77
77
|
}
|
|
78
78
|
else {
|
|
79
79
|
where.source = {
|
|
80
|
-
[sequelize_1.default.Op.in]: this.
|
|
80
|
+
[sequelize_1.default.Op.in]: yield this.parkingSourcesRepository.getLegacySources(),
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
83
|
if (sourceId) {
|
|
@@ -136,7 +136,7 @@ class ParkingsModel extends output_gateway_1.SequelizeModel {
|
|
|
136
136
|
],
|
|
137
137
|
},
|
|
138
138
|
],
|
|
139
|
-
where: { id, source: { [sequelize_1.Op.in]: this.
|
|
139
|
+
where: { id, source: { [sequelize_1.Op.in]: yield this.parkingSourcesRepository.getLegacySources() } },
|
|
140
140
|
raw: true,
|
|
141
141
|
nest: true,
|
|
142
142
|
});
|
|
@@ -163,7 +163,7 @@ class ParkingsModel extends output_gateway_1.SequelizeModel {
|
|
|
163
163
|
}
|
|
164
164
|
else {
|
|
165
165
|
where.source = {
|
|
166
|
-
[sequelize_1.Op.in]: this.
|
|
166
|
+
[sequelize_1.Op.in]: yield this.parkingSourcesRepository.getLegacySources(),
|
|
167
167
|
};
|
|
168
168
|
}
|
|
169
169
|
if (options.sourceId) {
|
|
@@ -246,7 +246,7 @@ class ParkingsModel extends output_gateway_1.SequelizeModel {
|
|
|
246
246
|
where: {
|
|
247
247
|
id: parkingId,
|
|
248
248
|
source: {
|
|
249
|
-
[sequelize_1.Op.in]: this.
|
|
249
|
+
[sequelize_1.Op.in]: yield this.parkingSourcesRepository.getLegacySources(),
|
|
250
250
|
},
|
|
251
251
|
},
|
|
252
252
|
raw: true,
|
|
@@ -254,7 +254,6 @@ class ParkingsModel extends output_gateway_1.SequelizeModel {
|
|
|
254
254
|
subQuery: false,
|
|
255
255
|
});
|
|
256
256
|
});
|
|
257
|
-
this.allowedSources = CachedParkingSourcesRepository_1.CachedParkingSourcesRepository.getLegacySources();
|
|
258
257
|
}
|
|
259
258
|
}
|
|
260
259
|
exports.ParkingsModel = ParkingsModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParkingsModel.js","sourceRoot":"","sources":["../../../src/output-gateway/models/ParkingsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ParkingsModel.js","sourceRoot":"","sources":["../../../src/output-gateway/models/ParkingsModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SequelizeModel } from "@golemio/core/dist/output-gateway";
|
|
2
|
+
import { CachedParkingSourcesRepository } from "../../helpers/data-access/CachedParkingSourcesRepository";
|
|
2
3
|
export interface IGetTariffsOptions {
|
|
3
4
|
source?: string;
|
|
4
5
|
}
|
|
@@ -34,8 +35,8 @@ export interface IParkingsTariffDescription {
|
|
|
34
35
|
export interface IParkingsTariff extends IParkingsTariffCharge, IParkingsTariffDescription {
|
|
35
36
|
}
|
|
36
37
|
export declare class ParkingsTariffsModel extends SequelizeModel {
|
|
37
|
-
private
|
|
38
|
-
constructor();
|
|
38
|
+
private parkingSourcesRepository;
|
|
39
|
+
constructor(parkingSourcesRepository: CachedParkingSourcesRepository);
|
|
39
40
|
GetAll: (options?: IGetTariffsOptions) => Promise<IParkingsTariff[]>;
|
|
40
41
|
GetOne: (tariffId: string) => Promise<IParkingsTariff[]>;
|
|
41
42
|
}
|
|
@@ -14,12 +14,12 @@ const output_gateway_1 = require("@golemio/core/dist/output-gateway");
|
|
|
14
14
|
const index_1 = require("../../schema-definitions/index");
|
|
15
15
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
16
16
|
const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
|
|
17
|
-
const CachedParkingSourcesRepository_1 = require("../../helpers/data-access/CachedParkingSourcesRepository");
|
|
18
17
|
class ParkingsTariffsModel extends output_gateway_1.SequelizeModel {
|
|
19
|
-
constructor() {
|
|
18
|
+
constructor(parkingSourcesRepository) {
|
|
20
19
|
super(index_1.Parkings.tariffs.name, index_1.Parkings.tariffs.pgTableName, index_1.Parkings.tariffs.outputSequelizeAttributes, {
|
|
21
20
|
schema: index_1.Parkings.pgSchema,
|
|
22
21
|
});
|
|
22
|
+
this.parkingSourcesRepository = parkingSourcesRepository;
|
|
23
23
|
this.GetAll = (options = {}) => __awaiter(this, void 0, void 0, function* () {
|
|
24
24
|
const { source } = options;
|
|
25
25
|
let where = {};
|
|
@@ -29,7 +29,7 @@ class ParkingsTariffsModel extends output_gateway_1.SequelizeModel {
|
|
|
29
29
|
}
|
|
30
30
|
else {
|
|
31
31
|
where.source = {
|
|
32
|
-
[sequelize_1.Op.in]: this.
|
|
32
|
+
[sequelize_1.Op.in]: yield this.parkingSourcesRepository.getLegacySources(),
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
const order = [];
|
|
@@ -51,13 +51,12 @@ class ParkingsTariffsModel extends output_gateway_1.SequelizeModel {
|
|
|
51
51
|
where: {
|
|
52
52
|
tariff_id: tariffId,
|
|
53
53
|
source: {
|
|
54
|
-
[sequelize_1.Op.in]: this.
|
|
54
|
+
[sequelize_1.Op.in]: yield this.parkingSourcesRepository.getLegacySources(),
|
|
55
55
|
},
|
|
56
56
|
},
|
|
57
57
|
raw: true,
|
|
58
58
|
});
|
|
59
59
|
});
|
|
60
|
-
this.allowedSources = CachedParkingSourcesRepository_1.CachedParkingSourcesRepository.getLegacySources();
|
|
61
60
|
}
|
|
62
61
|
}
|
|
63
62
|
exports.ParkingsTariffsModel = ParkingsTariffsModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParkingsTariffsModel.js","sourceRoot":"","sources":["../../../src/output-gateway/models/ParkingsTariffsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAAmE;AACnE,0DAAsC;AACtC,6EAAwE;AACxE,mEAAoE;
|
|
1
|
+
{"version":3,"file":"ParkingsTariffsModel.js","sourceRoot":"","sources":["../../../src/output-gateway/models/ParkingsTariffsModel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAAmE;AACnE,0DAAsC;AACtC,6EAAwE;AACxE,mEAAoE;AAwCpE,MAAa,oBAAqB,SAAQ,+BAAc;IACpD,YAA2B,wBAAwD;QAC/E,KAAK,CAAC,gBAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,gBAAQ,CAAC,OAAO,CAAC,yBAAyB,EAAE;YACnG,MAAM,EAAE,gBAAQ,CAAC,QAAQ;SAC5B,CAAC,CAAC;QAHoB,6BAAwB,GAAxB,wBAAwB,CAAgC;QAM5E,WAAM,GAAG,CAAO,UAA8B,EAAE,EAA8B,EAAE;YACnF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;YAE3B,IAAI,KAAK,GAA2B,EAAE,CAAC;YACvC,IAAI,UAAU,GAAmC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAE9E,IAAI,MAAM,EAAE;gBACR,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;aACzB;iBAAM;gBACH,KAAK,CAAC,MAAM,GAAG;oBACX,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE;iBAClE,CAAC;aACL;YAED,MAAM,KAAK,GAAoB,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC;YAEhE,IAAI;gBACA,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBACrC,UAAU;oBACV,KAAK;oBACL,GAAG,EAAE,IAAI;oBACT,KAAK;iBACR,CAAC,CAAC;aACN;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aAC7E;QACL,CAAC,CAAA,CAAC;QAEK,WAAM,GAAG,CAAO,QAAgB,EAA8B,EAAE;YACnE,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBACrC,KAAK,EAAE;oBACH,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE;wBACJ,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE;qBAClE;iBACJ;gBACD,GAAG,EAAE,IAAI;aACZ,CAAC,CAAC;QACP,CAAC,CAAA,CAAC;IAzCF,CAAC;CA0CJ;AA/CD,oDA+CC"}
|
|
@@ -7,12 +7,14 @@ const ParkingsLocationModel_1 = require("./ParkingsLocationModel");
|
|
|
7
7
|
const ParkingsMeasurementsModels_1 = require("./ParkingsMeasurementsModels");
|
|
8
8
|
const ParkingsModel_1 = require("./ParkingsModel");
|
|
9
9
|
const ParkingsTariffsModel_1 = require("./ParkingsTariffsModel");
|
|
10
|
+
const Di_1 = require("../ioc/Di");
|
|
11
|
+
const ModuleContainerToken_1 = require("../ioc/ModuleContainerToken");
|
|
10
12
|
const models = {
|
|
11
13
|
ParkingsLocationModel: new ParkingsLocationModel_1.ParkingsLocationModel(),
|
|
12
|
-
ParkingsModel: new ParkingsModel_1.ParkingsModel(),
|
|
14
|
+
ParkingsModel: new ParkingsModel_1.ParkingsModel(Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.CachedParkingSourcesRepository)),
|
|
13
15
|
ParkingsMeasurementsModel: new ParkingsMeasurementsModels_1.ParkingsMeasurementsModels(Object.assign(Object.assign({}, _sch_1.Parkings.measurements), { outputJsonSchema: ParkingMeasurementsDtoSchema_1.ParkingMeasurementsDtoSchema })),
|
|
14
16
|
ParkingsMeasurementsActualModel: new ParkingsMeasurementsModels_1.ParkingsMeasurementsModels(Object.assign(Object.assign({}, _sch_1.Parkings.measurementsActual), { outputJsonSchema: ParkingMeasurementsDtoSchema_1.ParkingMeasurementsDtoSchema })),
|
|
15
|
-
ParkingsTariffsModel: new ParkingsTariffsModel_1.ParkingsTariffsModel(),
|
|
17
|
+
ParkingsTariffsModel: new ParkingsTariffsModel_1.ParkingsTariffsModel(Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.CachedParkingSourcesRepository)),
|
|
16
18
|
};
|
|
17
19
|
exports.models = models;
|
|
18
20
|
for (const type of Object.keys(models)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/models/index.ts"],"names":[],"mappings":";;;AAAA,mDAAgC;AAChC,oHAA6F;AAC7F,mEAAgE;AAChE,6EAA0E;AAC1E,mDAAgD;AAChD,iEAA8D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/models/index.ts"],"names":[],"mappings":";;;AAAA,mDAAgC;AAChC,oHAA6F;AAC7F,mEAAgE;AAChE,6EAA0E;AAC1E,mDAAgD;AAChD,iEAA8D;AAC9D,kCAA+C;AAE/C,sEAAoE;AAUpE,MAAM,MAAM,GAAoB;IAC5B,qBAAqB,EAAE,IAAI,6CAAqB,EAAE;IAClD,aAAa,EAAE,IAAI,6BAAa,CAC5B,sBAAiB,CAAC,OAAO,CAAiC,2CAAoB,CAAC,8BAA8B,CAAC,CACjH;IACD,yBAAyB,EAAE,IAAI,uDAA0B,iCAClD,eAAQ,CAAC,YAAY,KACxB,gBAAgB,EAAE,2DAA4B,IAChD;IACF,+BAA+B,EAAE,IAAI,uDAA0B,iCACxD,eAAQ,CAAC,kBAAkB,KAC9B,gBAAgB,EAAE,2DAA4B,IAChD;IACF,oBAAoB,EAAE,IAAI,2CAAoB,CAC1C,sBAAiB,CAAC,OAAO,CAAiC,2CAAoB,CAAC,8BAA8B,CAAC,CACjH;CACJ,CAAC;AASO,wBAAM;AAPf,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IACpC,MAAM,KAAK,GAAI,MAAc,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;QACnC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC3B;CACJ"}
|
|
@@ -37,15 +37,15 @@ let PrimarySourceValidator = exports.PrimarySourceValidator = class PrimarySourc
|
|
|
37
37
|
return allowedSources.includes(value);
|
|
38
38
|
}
|
|
39
39
|
});
|
|
40
|
-
this.validateLegacy = (value, options) => {
|
|
41
|
-
const allowedSources =
|
|
40
|
+
this.validateLegacy = (value, options) => __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const allowedSources = yield this.repository.getLegacySources();
|
|
42
42
|
if (value instanceof Array) {
|
|
43
43
|
return value.every((source) => allowedSources.includes(source));
|
|
44
44
|
}
|
|
45
45
|
else {
|
|
46
46
|
return allowedSources.includes(value);
|
|
47
47
|
}
|
|
48
|
-
};
|
|
48
|
+
});
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
51
|
exports.PrimarySourceValidator = PrimarySourceValidator = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimarySourceValidator.js","sourceRoot":"","sources":["../../../../../src/output-gateway/routers/v3/helpers/PrimarySourceValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,mHAAqG;AACrG,4EAAoE;AAEpE,iEAAwE;AAGjE,IAAM,sBAAsB,oCAA5B,MAAM,sBAAsB;IAC/B,YACiE,UAAkD;QAA1C,eAAU,GAAV,UAAU,CAAgC;QAG5G,aAAQ,GAAoB,CAAO,KAAK,EAAE,OAAO,EAAE,EAAE;YACxD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YAE5D,IAAI,KAAK,YAAY,KAAK,EAAE;gBACxB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aAC3E;iBAAM;gBACH,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACzC;QACL,CAAC,CAAA,CAAC;QAEK,mBAAc,GAAoB,
|
|
1
|
+
{"version":3,"file":"PrimarySourceValidator.js","sourceRoot":"","sources":["../../../../../src/output-gateway/routers/v3/helpers/PrimarySourceValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,mHAAqG;AACrG,4EAAoE;AAEpE,iEAAwE;AAGjE,IAAM,sBAAsB,oCAA5B,MAAM,sBAAsB;IAC/B,YACiE,UAAkD;QAA1C,eAAU,GAAV,UAAU,CAAgC;QAG5G,aAAQ,GAAoB,CAAO,KAAK,EAAE,OAAO,EAAE,EAAE;YACxD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YAE5D,IAAI,KAAK,YAAY,KAAK,EAAE;gBACxB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aAC3E;iBAAM;gBACH,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACzC;QACL,CAAC,CAAA,CAAC;QAEK,mBAAc,GAAoB,CAAO,KAAK,EAAE,OAAO,EAAE,EAAE;YAC9D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAEhE,IAAI,KAAK,YAAY,KAAK,EAAE;gBACxB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aAC3E;iBAAM;gBACH,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACzC;QACL,CAAC,CAAA,CAAC;IApBC,CAAC;CAqBP,CAAA;iCAxBY,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,8BAA8B,CAAC,CAAA;qCAAqB,+DAA8B;GAF1G,sBAAsB,CAwBlC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InputParkingSourceSchema = void 0;
|
|
4
|
+
exports.InputParkingSourceSchema = {
|
|
5
|
+
type: "object",
|
|
6
|
+
properties: {
|
|
7
|
+
source: { type: "string" },
|
|
8
|
+
open_data: { type: "boolean" },
|
|
9
|
+
api_v3_allowed: { type: "boolean" },
|
|
10
|
+
legacy_api_allowed: { type: "boolean" },
|
|
11
|
+
payment_url: { oneOf: [{ type: "string" }, { type: "null", nullable: true }] },
|
|
12
|
+
contact: { oneOf: [{ type: "object" }, { type: "null", nullable: true }] },
|
|
13
|
+
},
|
|
14
|
+
required: ["source", "open_data", "api_v3_allowed", "legacy_api_allowed"],
|
|
15
|
+
additionalProperties: false,
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=InputParkingSourceSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputParkingSourceSchema.js","sourceRoot":"","sources":["../../../src/schema-definitions/datasources/InputParkingSourceSchema.ts"],"names":[],"mappings":";;;AAGa,QAAA,wBAAwB,GAAmC;IACpE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;QAC9E,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;KAC7E;IACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;IACzE,oBAAoB,EAAE,KAAK;CAC9B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Model, ModelAttributes } from "@golemio/core/dist/shared/sequelize";
|
|
2
|
+
import { IParkingSource } from "../../helpers/interfaces/IParkingSource";
|
|
3
|
+
export declare class ParkingSourcesModel extends Model<IParkingSource> implements IParkingSource {
|
|
4
|
+
static tableName: string;
|
|
5
|
+
source: string;
|
|
6
|
+
open_data: boolean;
|
|
7
|
+
api_v3_allowed: boolean;
|
|
8
|
+
legacy_api_allowed: boolean;
|
|
9
|
+
payment_url: string | null;
|
|
10
|
+
contact: object | null;
|
|
11
|
+
static attributeModel: ModelAttributes<ParkingSourcesModel>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParkingSourcesModel = void 0;
|
|
4
|
+
const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
|
|
5
|
+
class ParkingSourcesModel extends sequelize_1.Model {
|
|
6
|
+
}
|
|
7
|
+
exports.ParkingSourcesModel = ParkingSourcesModel;
|
|
8
|
+
ParkingSourcesModel.tableName = "parking_sources";
|
|
9
|
+
ParkingSourcesModel.attributeModel = {
|
|
10
|
+
source: {
|
|
11
|
+
primaryKey: true,
|
|
12
|
+
type: sequelize_1.DataTypes.STRING,
|
|
13
|
+
},
|
|
14
|
+
open_data: sequelize_1.DataTypes.BOOLEAN,
|
|
15
|
+
api_v3_allowed: sequelize_1.DataTypes.BOOLEAN,
|
|
16
|
+
legacy_api_allowed: sequelize_1.DataTypes.BOOLEAN,
|
|
17
|
+
payment_url: sequelize_1.DataTypes.STRING,
|
|
18
|
+
contact: sequelize_1.DataTypes.JSON,
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=ParkingSourcesModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParkingSourcesModel.js","sourceRoot":"","sources":["../../../src/schema-definitions/models/ParkingSourcesModel.ts"],"names":[],"mappings":";;;AAAA,mEAAwF;AAGxF,MAAa,mBAAoB,SAAQ,iBAAqB;;AAA9D,kDAqBC;AApBiB,6BAAS,GAAG,iBAAiB,CAAC;AAS9B,kCAAc,GAAyC;IACjE,MAAM,EAAE;QACJ,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,qBAAS,CAAC,MAAM;KACzB;IACD,SAAS,EAAE,qBAAS,CAAC,OAAO;IAC5B,cAAc,EAAE,qBAAS,CAAC,OAAO;IACjC,kBAAkB,EAAE,qBAAS,CAAC,OAAO;IACrC,WAAW,EAAE,qBAAS,CAAC,MAAM;IAC7B,OAAO,EAAE,qBAAS,CAAC,IAAI;CAC1B,CAAC"}
|
|
@@ -23,6 +23,10 @@ Modul slouží k ukládání a poskytování informací o parkování.
|
|
|
23
23
|
|
|
24
24
|
- na FTP, dodavatel TSK (parkovací zóny)
|
|
25
25
|
|
|
26
|
+
- Data poskytovatelů přes /source
|
|
27
|
+
- slouží pro administraci a update statických hodnot k poskytovatelům parkovišť
|
|
28
|
+
- POST (/source) => RabbitMq send Message `saveParkingSourceToDB` ([Data example](../test/input-gateway/data/parkingSourceInput.json))
|
|
29
|
+
|
|
26
30
|
### Data aktivně stahujeme
|
|
27
31
|
|
|
28
32
|
Data stahujeme pravidelně od IPR, TSK a z nového API TSK (značené jako v2).
|
|
@@ -303,6 +307,12 @@ Vybraným parkovištím může být nahrazena location za Multipolygon ze zdroje
|
|
|
303
307
|
- parkingsModel -> (schéma public) `parkings`
|
|
304
308
|
- parkingTariffsmodel -> (schéma public) `parkings_tariffs`
|
|
305
309
|
|
|
310
|
+
### Worker ParkingSourcesWorker
|
|
311
|
+
|
|
312
|
+
- ukládá data z queue `saveParkingSourceToDB` do db
|
|
313
|
+
- zdroj je IG přes `ParkingSourcesRouter`
|
|
314
|
+
- transformace není
|
|
315
|
+
|
|
306
316
|
## Uložení dat
|
|
307
317
|
|
|
308
318
|
- typ databáze
|
|
@@ -426,7 +436,7 @@ _:warning: Deprecated, využijte /parking/measurements_
|
|
|
426
436
|
- parkings_machines
|
|
427
437
|
- seznam parkovacích automatů s geometrií
|
|
428
438
|
- `type` nabývá hodnot: `payment_machine, info_box
|
|
429
|
-
|
|
439
|
+
|
|
430
440
|
#### _/v3/parking-machines/:id_
|
|
431
441
|
|
|
432
442
|
- zdrojové tabulky
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
openapi: 3.0.3
|
|
2
|
+
info:
|
|
3
|
+
title: 🅿️ Parking Input Gateway
|
|
4
|
+
description: >-
|
|
5
|
+
<p>API gateway pro správu poskytovatelů parkovišť.</p>
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
contact:
|
|
8
|
+
name: Golemio Prague Data Plaform
|
|
9
|
+
email: golemio@operatorict.cz
|
|
10
|
+
url: https://golemio.cz
|
|
11
|
+
servers:
|
|
12
|
+
- url: https://api.golemio.cz/
|
|
13
|
+
description: Main (production) server
|
|
14
|
+
- url: https://rabin.golemio.cz/
|
|
15
|
+
description: Test (development) server
|
|
16
|
+
tags:
|
|
17
|
+
- name: 🅿 ️Parking sources
|
|
18
|
+
description: ""
|
|
19
|
+
paths:
|
|
20
|
+
/parkings/source:
|
|
21
|
+
post:
|
|
22
|
+
summary: edit parking source
|
|
23
|
+
description: Pokud existuje poskytovatel s uvedeným source, tak se aktualizuje. Pokud ne, založí se nový.
|
|
24
|
+
tags:
|
|
25
|
+
- 🅿 ️Parking sources
|
|
26
|
+
requestBody:
|
|
27
|
+
required: true
|
|
28
|
+
content:
|
|
29
|
+
application/json:
|
|
30
|
+
schema:
|
|
31
|
+
$ref: "#/components/schemas/ParkingSource"
|
|
32
|
+
responses:
|
|
33
|
+
204:
|
|
34
|
+
description: OK
|
|
35
|
+
401:
|
|
36
|
+
$ref: "#/components/responses/UnauthorizedError"
|
|
37
|
+
404:
|
|
38
|
+
description: Not found
|
|
39
|
+
422:
|
|
40
|
+
description: Error while validating input data
|
|
41
|
+
500:
|
|
42
|
+
description: Database error
|
|
43
|
+
|
|
44
|
+
components:
|
|
45
|
+
responses:
|
|
46
|
+
UnauthorizedError:
|
|
47
|
+
description: API key is missing or invalid
|
|
48
|
+
headers:
|
|
49
|
+
x-access-token:
|
|
50
|
+
schema:
|
|
51
|
+
type: string
|
|
52
|
+
schemas:
|
|
53
|
+
ParkingSource:
|
|
54
|
+
title: Parking Source
|
|
55
|
+
type: object
|
|
56
|
+
properties:
|
|
57
|
+
source:
|
|
58
|
+
type: string
|
|
59
|
+
example: "korid"
|
|
60
|
+
description: "unikátní identifikátor poskytovatele"
|
|
61
|
+
open_data:
|
|
62
|
+
type: boolean
|
|
63
|
+
description: "Jsou data poskytovatele open-data?"
|
|
64
|
+
api_v3_allowed:
|
|
65
|
+
type: boolean
|
|
66
|
+
description: "povolit výstup na API v3"
|
|
67
|
+
legacy_api_allowed:
|
|
68
|
+
type: boolean
|
|
69
|
+
description: "povolit výstup na starší api (v1, v2)."
|
|
70
|
+
payment_url:
|
|
71
|
+
type: string
|
|
72
|
+
nullable: true
|
|
73
|
+
example: "https://parking.liberec.cz/"
|
|
74
|
+
description: "URL, kde lze zaplatit parkovné"
|
|
75
|
+
contact:
|
|
76
|
+
type: object
|
|
77
|
+
nullable: true
|
|
78
|
+
properties:
|
|
79
|
+
email:
|
|
80
|
+
type: string
|
|
81
|
+
example: "pomoc@parking.liberec.cz"
|
|
82
|
+
phone:
|
|
83
|
+
type: string
|
|
84
|
+
example: "+420604295403"
|
|
85
|
+
web_url:
|
|
86
|
+
type: string
|
|
87
|
+
example: "https://parking.liberec.cz/"
|
|
88
|
+
term_of_use_url:
|
|
89
|
+
type: string
|
|
90
|
+
example: "https://www.liberec.cz/cz/prakticke-informace/doprava-udrzba-komunikaci/parkovaci-mista/parkovaci-mista.html"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@golemio/parkings",
|
|
3
|
-
"version": "1.6.1-dev.
|
|
3
|
+
"version": "1.6.1-dev.1068064627",
|
|
4
4
|
"description": "Golemio Parkings Module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"@commitlint/config-conventional": "^11.0.0",
|
|
38
38
|
"@golemio/cli": "1.5.0",
|
|
39
39
|
"@golemio/core": "1.9.4-dev.1031695319",
|
|
40
|
+
"@golemio/db-common": "^1.1.2",
|
|
40
41
|
"@golemio/eslint-config": "1.1.1",
|
|
41
42
|
"@types/chai": "4.2.3",
|
|
42
43
|
"@types/chai-as-promised": "7.1.2",
|