@golemio/parkings 1.6.1-dev.1057357626 → 1.6.1-dev.1073183047

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.
Files changed (51) hide show
  1. package/db/example/04_tsk_parking_v2.sql +5 -2
  2. package/db/migrations/postgresql/20231108130727-ipt-api-v3-allowed.js +53 -0
  3. package/db/migrations/postgresql/sqls/20231108130727-ipt-api-v3-allowed-down.sql +2 -0
  4. package/db/migrations/postgresql/sqls/20231108130727-ipt-api-v3-allowed-up.sql +2 -0
  5. package/dist/helpers/data-access/CachedParkingSourcesRepository.d.ts +1 -1
  6. package/dist/helpers/data-access/CachedParkingSourcesRepository.js +7 -6
  7. package/dist/helpers/data-access/CachedParkingSourcesRepository.js.map +1 -1
  8. package/dist/helpers/interfaces/IParkingSource.d.ts +2 -1
  9. package/dist/input-gateway/controllers/ParkingSourcesController.d.ts +9 -0
  10. package/dist/input-gateway/controllers/ParkingSourcesController.js +40 -0
  11. package/dist/input-gateway/controllers/ParkingSourcesController.js.map +1 -0
  12. package/dist/input-gateway/index.d.ts +2 -0
  13. package/dist/input-gateway/index.js +5 -0
  14. package/dist/input-gateway/index.js.map +1 -1
  15. package/dist/input-gateway/routers/ParkingSourcesRouter.d.ts +12 -0
  16. package/dist/input-gateway/routers/ParkingSourcesRouter.js +39 -0
  17. package/dist/input-gateway/routers/ParkingSourcesRouter.js.map +1 -0
  18. package/dist/integration-engine/index.d.ts +3 -1
  19. package/dist/integration-engine/index.js +3 -1
  20. package/dist/integration-engine/index.js.map +1 -1
  21. package/dist/integration-engine/repositories/ParkingSourcesRepository.d.ts +4 -0
  22. package/dist/integration-engine/repositories/ParkingSourcesRepository.js +23 -0
  23. package/dist/integration-engine/repositories/ParkingSourcesRepository.js.map +1 -0
  24. package/dist/integration-engine/workers/ParkingSourcesWorker.d.ts +5 -0
  25. package/dist/integration-engine/workers/ParkingSourcesWorker.js +18 -0
  26. package/dist/integration-engine/workers/ParkingSourcesWorker.js.map +1 -0
  27. package/dist/integration-engine/workers/schemas/ParkingSourceSchema.d.ts +9 -0
  28. package/dist/integration-engine/workers/schemas/ParkingSourceSchema.js +44 -0
  29. package/dist/integration-engine/workers/schemas/ParkingSourceSchema.js.map +1 -0
  30. package/dist/integration-engine/workers/tasks/UpdateParkingSourceTask.d.ts +14 -0
  31. package/dist/integration-engine/workers/tasks/UpdateParkingSourceTask.js +36 -0
  32. package/dist/integration-engine/workers/tasks/UpdateParkingSourceTask.js.map +1 -0
  33. package/dist/output-gateway/models/ParkingsModel.d.ts +3 -2
  34. package/dist/output-gateway/models/ParkingsModel.js +6 -7
  35. package/dist/output-gateway/models/ParkingsModel.js.map +1 -1
  36. package/dist/output-gateway/models/ParkingsTariffsModel.d.ts +3 -2
  37. package/dist/output-gateway/models/ParkingsTariffsModel.js +4 -5
  38. package/dist/output-gateway/models/ParkingsTariffsModel.js.map +1 -1
  39. package/dist/output-gateway/models/index.js +4 -2
  40. package/dist/output-gateway/models/index.js.map +1 -1
  41. package/dist/output-gateway/routers/v3/helpers/PrimarySourceValidator.js +3 -3
  42. package/dist/output-gateway/routers/v3/helpers/PrimarySourceValidator.js.map +1 -1
  43. package/dist/schema-definitions/datasources/InputParkingSourceSchema.d.ts +3 -0
  44. package/dist/schema-definitions/datasources/InputParkingSourceSchema.js +17 -0
  45. package/dist/schema-definitions/datasources/InputParkingSourceSchema.js.map +1 -0
  46. package/dist/schema-definitions/models/ParkingSourcesModel.d.ts +12 -0
  47. package/dist/schema-definitions/models/ParkingSourcesModel.js +20 -0
  48. package/dist/schema-definitions/models/ParkingSourcesModel.js.map +1 -0
  49. package/docs/implementation-documentation.md +11 -1
  50. package/docs/openapi-admin-input.yaml +90 -0
  51. package/package.json +3 -3
@@ -1,5 +1,8 @@
1
- INSERT INTO parking_sources ("source",open_data,ipt_allowed,payment_url,contact) VALUES
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
+ };
@@ -0,0 +1,2 @@
1
+ ALTER TABLE parking_sources RENAME COLUMN "api_v3_allowed" TO "ipt_allowed";
2
+ ALTER TABLE parking_sources DROP COLUMN "legacy_api_allowed";
@@ -0,0 +1,2 @@
1
+ ALTER TABLE parking_sources RENAME COLUMN "ipt_allowed" TO "api_v3_allowed";
2
+ ALTER TABLE parking_sources ADD COLUMN "legacy_api_allowed" bool NOT NULL DEFAULT true;
@@ -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
- static getLegacySources(): string[];
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
- .getConnection()
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
- static getLegacySources() {
35
- return ["tsk", "korid", "ipr"]; // TBD shall be done while user story for pushing parking sources
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;iBACtB,aAAa,EAAE;iBACf,KAAK,CACF,oEAAoE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,EACnG,EAAE,IAAI,EAAE,sBAAU,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CACzC,CAAC;QACV,CAAC;KAAA;IAEY,YAAY;;YACrB,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClE,CAAC;KAAA;IAEM,MAAM,CAAC,gBAAgB;QAC1B,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,iEAAiE;IACrG,CAAC;CACJ;AAxBD,wEAwBC"}
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"}
@@ -1,7 +1,8 @@
1
1
  export interface IParkingSource {
2
2
  source: string;
3
3
  open_data: boolean;
4
- ipt_allowed: boolean;
4
+ api_v3_allowed: boolean;
5
+ legacy_api_allowed: boolean;
5
6
  payment_url: string | null;
6
7
  contact: object | null;
7
8
  }
@@ -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"}
@@ -1 +1,3 @@
1
1
  export * as KoridParkings from "./korid-parkings";
2
+ export * from "./routers/ParkingSourcesRouter";
3
+ export * from "./controllers/ParkingSourcesController";
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kEAAkD"}
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 declare const workers: (typeof StaticTariffsWorker | typeof UpdateAddressWorker | typeof NewParkingsWorker | typeof TskParkingWorker)[];
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
- exports.workers = [StaticTariffsWorker_1.StaticTariffsWorker, UpdateAddressWorker_1.UpdateAddressWorker, NewParkingsWorker_1.NewParkingsWorker, TskParkingWorker_1.TskParkingWorker];
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;AAEhE,mDAAiC;AACjC,mFAAiE;AACjE,qFAAmE;AACnE,qDAAmC;AACnC,qFAAmE;AACnE,kFAAgE;AAChE,0EAAwD;AACxD,gEAA8C;AAC9C,6DAA2C;AAE9B,QAAA,OAAO,GAAG,CAAC,yCAAmB,EAAE,yCAAmB,EAAE,qCAAiB,EAAE,mCAAgB,CAAC,CAAC"}
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,4 @@
1
+ import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine";
2
+ export declare class ParkingSourcesRepository extends PostgresModel implements IModel {
3
+ constructor();
4
+ }
@@ -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,5 @@
1
+ import { AbstractWorker } from "@golemio/core/dist/integration-engine";
2
+ export declare class ParkingSourcesWorker extends AbstractWorker {
3
+ protected readonly name: string;
4
+ constructor();
5
+ }
@@ -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
- private allowedSources;
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.allowedSources,
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.allowedSources } },
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.allowedSources,
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.allowedSources,
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":"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"}
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 allowedSources;
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.allowedSources,
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.allowedSources,
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;AACpE,6GAAqG;AAuCrG,MAAa,oBAAqB,SAAQ,+BAAc;IAGpD;QACI,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;QAIA,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,IAAI,CAAC,cAAc;iBAC/B,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,IAAI,CAAC,cAAc;qBAC/B;iBACJ;gBACD,GAAG,EAAE,IAAI;aACZ,CAAC,CAAC;QACP,CAAC,CAAA,CAAC;QA1CE,IAAI,CAAC,cAAc,GAAG,+DAA8B,CAAC,gBAAgB,EAAE,CAAC;IAC5E,CAAC;CA0CJ;AAlDD,oDAkDC"}
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;AAU9D,MAAM,MAAM,GAAoB;IAC5B,qBAAqB,EAAE,IAAI,6CAAqB,EAAE;IAClD,aAAa,EAAE,IAAI,6BAAa,EAAE;IAClC,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,EAAE;CACnD,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"}
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 = CachedParkingSourcesRepository_1.CachedParkingSourcesRepository.getLegacySources();
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,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACxD,MAAM,cAAc,GAAG,+DAA8B,CAAC,gBAAgB,EAAE,CAAC;YAEzE,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,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"}
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,3 @@
1
+ import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
2
+ import { IParkingSource } from "../../helpers/interfaces/IParkingSource";
3
+ export declare const InputParkingSourceSchema: JSONSchemaType<IParkingSource>;
@@ -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.1057357626",
3
+ "version": "1.6.1-dev.1073183047",
4
4
  "description": "Golemio Parkings Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,8 +36,8 @@
36
36
  "@commitlint/cli": "^11.0.0",
37
37
  "@commitlint/config-conventional": "^11.0.0",
38
38
  "@golemio/cli": "1.5.0",
39
- "@golemio/core": "1.9.4-dev.1031695319",
40
- "@golemio/db-common": "^1.1.2",
39
+ "@golemio/core": "1.9.5-dev.1069993092",
40
+ "@golemio/db-common": "1.1.2",
41
41
  "@golemio/eslint-config": "1.1.1",
42
42
  "@types/chai": "4.2.3",
43
43
  "@types/chai-as-promised": "7.1.2",