@golemio/waze-ccp 1.1.8-dev.1078494126 → 1.1.8-dev.1082572769

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 (53) hide show
  1. package/db/example/.config.json +3 -0
  2. package/db/example/00_truncate_tables.sql +2 -0
  3. package/db/example/01_potholes_data.sql +11 -0
  4. package/db/migrations/postgresql/20231120134251-og-potholes-view.js +53 -0
  5. package/db/migrations/postgresql/sqls/20231120134251-og-potholes-view-down.sql +1 -0
  6. package/db/migrations/postgresql/sqls/20231120134251-og-potholes-view-up.sql +9 -0
  7. package/dist/integration-engine/WazeCCPIrregularitiesTransformation.js +3 -3
  8. package/dist/integration-engine/WazeCCPIrregularitiesTransformation.js.map +1 -1
  9. package/dist/integration-engine/WazeCCPJamsTransformation.js +3 -3
  10. package/dist/integration-engine/WazeCCPJamsTransformation.js.map +1 -1
  11. package/dist/output-gateway/controllers/PotholesController.d.ts +13 -0
  12. package/dist/output-gateway/controllers/PotholesController.js +71 -0
  13. package/dist/output-gateway/controllers/PotholesController.js.map +1 -0
  14. package/dist/output-gateway/domain/IPothole.d.ts +6 -0
  15. package/dist/output-gateway/domain/IPothole.js +3 -0
  16. package/dist/output-gateway/domain/IPothole.js.map +1 -0
  17. package/dist/output-gateway/domain/IPotholesController.d.ts +5 -0
  18. package/dist/output-gateway/domain/IPotholesController.js +3 -0
  19. package/dist/output-gateway/domain/IPotholesController.js.map +1 -0
  20. package/dist/output-gateway/domain/IPotholesOutputDto.d.ts +13 -0
  21. package/dist/output-gateway/domain/IPotholesOutputDto.js +3 -0
  22. package/dist/output-gateway/domain/IPotholesOutputDto.js.map +1 -0
  23. package/dist/output-gateway/domain/IPotholesParams.d.ts +6 -0
  24. package/dist/output-gateway/domain/IPotholesParams.js +3 -0
  25. package/dist/output-gateway/domain/IPotholesParams.js.map +1 -0
  26. package/dist/output-gateway/domain/IPotholesRepository.d.ts +6 -0
  27. package/dist/output-gateway/domain/IPotholesRepository.js +3 -0
  28. package/dist/output-gateway/domain/IPotholesRepository.js.map +1 -0
  29. package/dist/output-gateway/helpers/ParseDateTimeHelper.d.ts +6 -0
  30. package/dist/output-gateway/helpers/ParseDateTimeHelper.js +14 -0
  31. package/dist/output-gateway/helpers/ParseDateTimeHelper.js.map +1 -0
  32. package/dist/output-gateway/index.d.ts +2 -0
  33. package/dist/output-gateway/index.js +21 -0
  34. package/dist/output-gateway/index.js.map +1 -0
  35. package/dist/output-gateway/ioc/Di.d.ts +3 -0
  36. package/dist/output-gateway/ioc/Di.js +20 -0
  37. package/dist/output-gateway/ioc/Di.js.map +1 -0
  38. package/dist/output-gateway/ioc/ModuleContainerToken.d.ts +6 -0
  39. package/dist/output-gateway/ioc/ModuleContainerToken.js +10 -0
  40. package/dist/output-gateway/ioc/ModuleContainerToken.js.map +1 -0
  41. package/dist/output-gateway/repositories/PotholesRepository.d.ts +10 -0
  42. package/dist/output-gateway/repositories/PotholesRepository.js +102 -0
  43. package/dist/output-gateway/repositories/PotholesRepository.js.map +1 -0
  44. package/dist/output-gateway/repositories/models/PotholeModel.d.ts +21 -0
  45. package/dist/output-gateway/repositories/models/PotholeModel.js +10 -0
  46. package/dist/output-gateway/repositories/models/PotholeModel.js.map +1 -0
  47. package/dist/output-gateway/routers/PotHolesRouter.d.ts +8 -0
  48. package/dist/output-gateway/routers/PotHolesRouter.js +36 -0
  49. package/dist/output-gateway/routers/PotHolesRouter.js.map +1 -0
  50. package/dist/output-gateway/transformation/PotholesDtoTransformation.d.ts +7 -0
  51. package/dist/output-gateway/transformation/PotholesDtoTransformation.js +39 -0
  52. package/dist/output-gateway/transformation/PotholesDtoTransformation.js.map +1 -0
  53. package/package.json +8 -1
@@ -0,0 +1,3 @@
1
+ {
2
+ "schema": "waze_ccp"
3
+ }
@@ -0,0 +1,2 @@
1
+ TRUNCATE wazeccp_alerts
2
+
@@ -0,0 +1,11 @@
1
+ INSERT INTO wazeccp_alerts (id,uuid,pub_millis,pub_utc_date,road_type,"location",street,city,country,magvar,reliability,report_description,report_rating,confidence,"type",subtype,report_by_municipality_user,thumbs_up,jam_uuid,valid_from,downloaded_at,duplicate_count,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
2
+ ('c1029d8c-c24b-6d1a-4328-a93724f2ad4f','60155213-bec9-4551-a264-d9cfd3cdebaa',1700494132000,'2023-11-20 15:28:52',2,'{"x": 14.469014, "y": 50.092079}','Pod Krejcárkem','Praha','EZ',238,5,NULL,0,0,'HAZARD','HAZARD_ON_ROAD_POT_HOLE',false,NULL,NULL,'2023-11-20 16:30:07.739+01','2023-11-20 16:56:04.464+01',13,NULL,'2023-11-20 16:30:43.645+01',NULL,NULL,'2023-11-20 16:56:36.942+01',NULL),
3
+ ('3dc091c2-2c7f-664a-11e8-8a0d512f9148','93a4dbf5-4f91-4df2-a41b-09cbd0881885',1700458700000,'2023-11-20 05:38:20',1,'{"x": 14.13676, "y": 49.986693}','Na Skalce','Vráž','EZ',359,6,NULL,5,0,'HAZARD','HAZARD_ON_ROAD_POT_HOLE',false,NULL,NULL,'2023-11-20 11:48:04.804+01','2023-11-20 14:38:03.562+01',84,NULL,'2023-11-20 11:48:07.308+01',NULL,NULL,'2023-11-20 14:38:18.433+01',NULL),
4
+ ('f4af12ef-e65b-c693-f6b8-ca4b408275fc','d542facf-c7d7-4100-b19c-dde0fd464a8c',1700492166000,'2023-11-20 14:56:06',1,'{"x": 14.516557, "y": 49.972562}','Plavecká','Jesenice','EZ',48,5,NULL,2,0,'HAZARD','HAZARD_ON_ROAD_POT_HOLE',false,NULL,NULL,'2023-11-20 15:58:03.001+01','2023-11-20 23:56:03.113+01',239,NULL,'2023-11-20 15:58:18.65+01',NULL,NULL,'2023-11-20 23:56:12.925+01',NULL),
5
+ ('766b8da5-2c25-5612-a390-8845171ca915','58a341c9-925b-48d8-a7d9-0c29fb1f5139',1700494078000,'2023-11-20 15:27:58',7,'{"x": 14.537883, "y": 50.079122}','Průmyslová','Praha','EZ',182,5,NULL,1,0,'HAZARD','HAZARD_ON_ROAD_POT_HOLE',false,NULL,NULL,'2023-11-20 16:28:03.2+01','2023-11-20 16:34:03.007+01',3,NULL,'2023-11-20 16:28:32.888+01',NULL,NULL,'2023-11-20 16:34:35.104+01',NULL),
6
+ ('2f8b09c1-cc4b-9f9b-4754-cfa1f8369cd0','c9f81712-5ff2-4608-9224-2c06717bfa40',1700479399000,'2023-11-20 11:23:19',2,'{"x": 14.498919, "y": 50.118421}','Prosecká','Praha','EZ',231,5,NULL,4,0,'HAZARD','HAZARD_ON_ROAD_POT_HOLE',false,NULL,NULL,'2023-11-20 12:24:03.45+01','2023-11-20 13:00:07.491+01',18,NULL,'2023-11-20 12:24:21.145+01',NULL,NULL,'2023-11-20 13:00:25.614+01',NULL),
7
+ ('8a3efbe3-e3b2-f08e-d6b2-15c2124d06d7','5bc70724-a331-45dd-8104-62ca0e691fd7',1700490064000,'2023-11-20 14:21:04',2,'{"x": 14.459653, "y": 50.075054}','Benešovská','Praha','EZ',108,5,NULL,3,0,'HAZARD','HAZARD_ON_ROAD_POT_HOLE',false,NULL,NULL,'2023-11-20 15:22:03.727+01','2023-11-20 15:42:03.862+01',10,NULL,'2023-11-20 15:22:10.901+01',NULL,NULL,'2023-11-20 15:42:12.063+01',NULL),
8
+ ('3048b39b-63b3-942a-b0fe-ea70bf684247','8693f215-0d32-4e98-87ca-82db7f8206bf',1700490985000,'2023-11-20 14:36:25',2,'{"x": 14.489722, "y": 50.054264}','V korytech','Praha','EZ',53,5,NULL,2,0,'HAZARD','HAZARD_ON_ROAD_POT_HOLE',false,NULL,NULL,'2023-11-20 15:38:04.105+01','2023-11-20 17:34:02.866+01',58,NULL,'2023-11-20 15:38:14.469+01',NULL,NULL,'2023-11-20 17:34:11.599+01',NULL),
9
+ ('17dea4e1-f533-496f-33b9-9761b7bf978b','64f17885-3a3a-466d-9d56-af1290896f52',1700463953000,'2023-11-20 07:05:53',1,'{"x": 14.433417, "y": 50.041907}','Hudečkova','Praha','EZ',41,6,NULL,5,0,'HAZARD','HAZARD_ON_ROAD_POT_HOLE',false,NULL,NULL,'2023-11-20 11:48:04.804+01','2023-11-20 16:06:03.874+01',128,NULL,'2023-11-20 11:48:05.409+01',NULL,NULL,'2023-11-20 16:06:11.677+01',NULL),
10
+ ('0f3031d1-e706-3993-420e-26fbbd5bb6f9','fb1039cc-b43f-4bca-881d-7b2048cc1a95',1700482750000,'2023-11-20 12:19:10',6,'{"x": 14.499297, "y": 50.131586}','Kbelská','Praha','EZ',318,5,NULL,4,0,'HAZARD','HAZARD_ON_ROAD_POT_HOLE',false,NULL,NULL,'2023-11-20 13:20:04.987+01','2023-11-20 13:46:03.705+01',13,NULL,'2023-11-20 13:20:15.779+01',NULL,NULL,'2023-11-20 13:46:12.141+01',NULL),
11
+ ('e0f2b6fc-9f77-0a12-f64b-a2e03258d990','6b67db2c-7a9e-48a2-86fd-a860b67ca94b',1700476845000,'2023-11-20 10:40:45',7,'{"x": 14.341796, "y": 50.094819}','Evropská','Praha','EZ',74,10,NULL,4,5,'HAZARD','HAZARD_ON_ROAD_POT_HOLE',false,NULL,NULL,'2023-11-20 11:48:04.804+01','2023-11-20 11:52:07.77+01',2,NULL,'2023-11-20 11:48:15.281+01',NULL,NULL,'2023-11-20 11:52:35.562+01',NULL);
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var dbm;
4
+ var type;
5
+ var seed;
6
+ var fs = require('fs');
7
+ var path = require('path');
8
+ var Promise;
9
+
10
+ /**
11
+ * We receive the dbmigrate dependency from dbmigrate initially.
12
+ * This enables us to not have to rely on NODE_PATH.
13
+ */
14
+ exports.setup = function(options, seedLink) {
15
+ dbm = options.dbmigrate;
16
+ type = dbm.dataType;
17
+ seed = seedLink;
18
+ Promise = options.Promise;
19
+ };
20
+
21
+ exports.up = function(db) {
22
+ var filePath = path.join(__dirname, 'sqls', '20231120134251-og-potholes-view-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', '20231120134251-og-potholes-view-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 @@
1
+ drop view v_waze_potholes_v2;
@@ -0,0 +1,9 @@
1
+ CREATE VIEW v_waze_potholes_v2
2
+ as select
3
+ wa.*,
4
+ wr.name as road_type_name,
5
+ timezone('UTC',pub_utc_date) AS published_at,
6
+ downloaded_at AS last_reported
7
+ from wazeccp_alerts wa
8
+ left join wazeccp_roads wr on
9
+ wa.road_type = wr.id
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.WazeCCPIrregularitiesTransformation = void 0;
13
+ const index_1 = require("../schema-definitions/index");
13
14
  const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
14
15
  const transformations_1 = require("@golemio/core/dist/integration-engine/transformations");
15
- const index_1 = require("../schema-definitions/index");
16
- const _1 = require("./");
16
+ const WazeCCPUtils_1 = require("./WazeCCPUtils");
17
17
  class WazeCCPIrregularitiesTransformation extends transformations_1.BaseTransformation {
18
18
  constructor() {
19
19
  super();
@@ -42,7 +42,7 @@ class WazeCCPIrregularitiesTransformation extends transformations_1.BaseTransfor
42
42
  delete irregularity.rootStart;
43
43
  const downloadedAt = irregularity.downloadedAt;
44
44
  delete irregularity.downloadedAt;
45
- const irregularityHash = (0, _1.generateAJIUniqueIdentifierHash)(irregularity, rootStart);
45
+ const irregularityHash = (0, WazeCCPUtils_1.generateAJIUniqueIdentifierHash)(irregularity, rootStart);
46
46
  const res = {
47
47
  alerts_count: irregularity.alertsCount,
48
48
  cause_type: irregularity.causeType,
@@ -1 +1 @@
1
- {"version":3,"file":"WazeCCPIrregularitiesTransformation.js","sourceRoot":"","sources":["../../src/integration-engine/WazeCCPIrregularitiesTransformation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WazeCCPIrregularitiesTransformation.js","sourceRoot":"","sources":["../../src/integration-engine/WazeCCPIrregularitiesTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAqC;AACrC,2EAAoE;AACpE,2FAA4G;AAC5G,iDAAiE;AAEjE,MAAa,mCAAoC,SAAQ,oCAAkB;IAGvE;QACI,KAAK,EAAE,CAAC;QAIZ;;WAEG;QACI,cAAS,GAAG,CAAO,IAAiB,EAAwB,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAEvC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,aAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,oCAAoC,CAAC,CAAC;gBAC3D,OAAO,EAAE,CAAC;aACb;YAED,MAAM,OAAO,GAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBACzC,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,iCAC1B,OAAO,KACV,YAAY;oBACZ,SAAS,IACX,CAAC;gBACH,IAAI,GAAG,EAAE;oBACL,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACrB;YACL,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACnB,CAAC,CAAA,CAAC;QAEQ,qBAAgB,GAAG,CAAC,YAAiB,EAAO,EAAE;YACpD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;YACzC,OAAO,YAAY,CAAC,SAAS,CAAC;YAC9B,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;YAC/C,OAAO,YAAY,CAAC,YAAY,CAAC;YACjC,MAAM,gBAAgB,GAAG,IAAA,8CAA+B,EAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAElF,MAAM,GAAG,GAAG;gBACR,YAAY,EAAE,YAAY,CAAC,WAAW;gBACtC,UAAU,EAAE,YAAY,CAAC,SAAS;gBAClC,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,OAAO,EAAE,YAAY,CAAC,OAAO;gBAC7B,aAAa,EAAE,YAAY,CAAC,YAAY;gBACxC,cAAc,EAAE,YAAY,CAAC,aAAa;gBAC1C,qBAAqB,EAAE,YAAY,CAAC,mBAAmB;gBACvD,kBAAkB,EAAE,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC;gBAC/D,aAAa,EAAE,YAAY;gBAC3B,aAAa,EAAE,YAAY,CAAC,YAAY;gBACxC,QAAQ,EAAE,YAAY,CAAC,OAAO;gBAC9B,EAAE,EAAE,gBAAgB;gBACpB,UAAU,EAAE,YAAY,CAAC,OAAO;gBAChC,SAAS,EAAE,YAAY,CAAC,QAAQ;gBAChC,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,UAAU,EAAE,YAAY,CAAC,SAAS;gBAClC,QAAQ,EAAE,YAAY,CAAC,OAAO;gBAC9B,WAAW,EAAE,YAAY,CAAC,SAAS;gBACnC,aAAa,EAAE,YAAY,CAAC,YAAY;gBACxC,OAAO,EAAE,YAAY,CAAC,OAAO;gBAC7B,QAAQ,EAAE,YAAY,CAAC,QAAQ;gBAC/B,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,UAAU,EAAE,YAAY,CAAC,SAAS;gBAClC,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,WAAW,EAAE,YAAY,CAAC,UAAU;gBACpC,kBAAkB,EAAE,YAAY,CAAC,gBAAgB;gBACjD,eAAe,EAAE,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC;gBACzD,IAAI,EAAE,YAAY,CAAC,EAAE;aACxB,CAAC;YAEF,OAAO,GAAG,CAAC;QACf,CAAC,CAAC;QAvEE,IAAI,CAAC,IAAI,GAAG,eAAO,CAAC,cAAc,CAAC,IAAI,CAAC;IAC5C,CAAC;CAuEJ;AA7ED,kFA6EC"}
@@ -10,10 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.WazeCCPJamsTransformation = void 0;
13
+ const index_1 = require("../schema-definitions/index");
13
14
  const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
14
15
  const transformations_1 = require("@golemio/core/dist/integration-engine/transformations");
15
- const index_1 = require("../schema-definitions/index");
16
- const _1 = require("./");
16
+ const WazeCCPUtils_1 = require("./WazeCCPUtils");
17
17
  class WazeCCPJamsTransformation extends transformations_1.BaseTransformation {
18
18
  constructor() {
19
19
  super();
@@ -42,7 +42,7 @@ class WazeCCPJamsTransformation extends transformations_1.BaseTransformation {
42
42
  delete jam.rootStart;
43
43
  const downloadedAt = jam.downloadedAt;
44
44
  delete jam.downloadedAt;
45
- const jamHash = (0, _1.generateAJIUniqueIdentifierHash)(jam, rootStart);
45
+ const jamHash = (0, WazeCCPUtils_1.generateAJIUniqueIdentifierHash)(jam, rootStart);
46
46
  const res = {
47
47
  blocking_alert_id: jam.blockingAlertUuid,
48
48
  city: jam.city,
@@ -1 +1 @@
1
- {"version":3,"file":"WazeCCPJamsTransformation.js","sourceRoot":"","sources":["../../src/integration-engine/WazeCCPJamsTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAAoE;AACpE,2FAA4G;AAC5G,uDAAqC;AACrC,yBAAqD;AAErD,MAAa,yBAA0B,SAAQ,oCAAkB;IAG7D;QACI,KAAK,EAAE,CAAC;QAIZ;;WAEG;QACI,cAAS,GAAG,CAAO,IAAiB,EAAwB,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAEvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACZ,aAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,oCAAoC,CAAC,CAAC;gBAC3D,OAAO,EAAE,CAAC;aACb;YAED,MAAM,OAAO,GAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,iCAC1B,OAAO,KACV,YAAY;oBACZ,SAAS,IACX,CAAC;gBACH,IAAI,GAAG,EAAE;oBACL,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACrB;YACL,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACnB,CAAC,CAAA,CAAC;QAEQ,qBAAgB,GAAG,CAAC,GAAQ,EAAO,EAAE;YAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;YAChC,OAAO,GAAG,CAAC,SAAS,CAAC;YACrB,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;YACtC,OAAO,GAAG,CAAC,YAAY,CAAC;YACxB,MAAM,OAAO,GAAG,IAAA,kCAA+B,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAEhE,MAAM,GAAG,GAAG;gBACR,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;gBACxC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,aAAa,EAAE,YAAY;gBAC3B,QAAQ,EAAE,GAAG,CAAC,OAAO;gBACrB,EAAE,EAAE,OAAO;gBACX,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE,GAAG,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;gBACtC,SAAS,EAAE,GAAG,CAAC,QAAQ;gBACvB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,SAAS,EAAE,GAAG,CAAC,QAAQ;gBACvB,UAAU,EAAE,GAAG,CAAC,SAAS;gBACzB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,SAAS,EAAE,GAAG,CAAC,QAAQ;gBACvB,SAAS,EAAE,GAAG,CAAC,QAAQ;gBACvB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;aACjB,CAAC;YAEF,OAAO,GAAG,CAAC;QACf,CAAC,CAAC;QA7DE,IAAI,CAAC,IAAI,GAAG,eAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IAClC,CAAC;CA6DJ;AAnED,8DAmEC"}
1
+ {"version":3,"file":"WazeCCPJamsTransformation.js","sourceRoot":"","sources":["../../src/integration-engine/WazeCCPJamsTransformation.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAqC;AACrC,2EAAoE;AACpE,2FAA4G;AAC5G,iDAAiE;AAEjE,MAAa,yBAA0B,SAAQ,oCAAkB;IAG7D;QACI,KAAK,EAAE,CAAC;QAIZ;;WAEG;QACI,cAAS,GAAG,CAAO,IAAiB,EAAwB,EAAE;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAEvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACZ,aAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,oCAAoC,CAAC,CAAC;gBAC3D,OAAO,EAAE,CAAC;aACb;YAED,MAAM,OAAO,GAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,iCAC1B,OAAO,KACV,YAAY;oBACZ,SAAS,IACX,CAAC;gBACH,IAAI,GAAG,EAAE;oBACL,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACrB;YACL,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACnB,CAAC,CAAA,CAAC;QAEQ,qBAAgB,GAAG,CAAC,GAAQ,EAAO,EAAE;YAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;YAChC,OAAO,GAAG,CAAC,SAAS,CAAC;YACrB,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;YACtC,OAAO,GAAG,CAAC,YAAY,CAAC;YACxB,MAAM,OAAO,GAAG,IAAA,8CAA+B,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAEhE,MAAM,GAAG,GAAG;gBACR,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;gBACxC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,aAAa,EAAE,YAAY;gBAC3B,QAAQ,EAAE,GAAG,CAAC,OAAO;gBACrB,EAAE,EAAE,OAAO;gBACX,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE,GAAG,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;gBACtC,SAAS,EAAE,GAAG,CAAC,QAAQ;gBACvB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,SAAS,EAAE,GAAG,CAAC,QAAQ;gBACvB,UAAU,EAAE,GAAG,CAAC,SAAS;gBACzB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,SAAS,EAAE,GAAG,CAAC,QAAQ;gBACvB,SAAS,EAAE,GAAG,CAAC,QAAQ;gBACvB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;aACjB,CAAC;YAEF,OAAO,GAAG,CAAC;QACf,CAAC,CAAC;QA7DE,IAAI,CAAC,IAAI,GAAG,eAAO,CAAC,IAAI,CAAC,IAAI,CAAC;IAClC,CAAC;CA6DJ;AAnED,8DAmEC"}
@@ -0,0 +1,13 @@
1
+ import { IPotholesController } from "../domain/IPotholesController";
2
+ import { IPotholesRepository } from "../domain/IPotholesRepository";
3
+ import { IAlertDto } from "../../schema-definitions/interfaces/IAlertDto";
4
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
5
+ import { IGeoJSONFeature } from "@golemio/core/dist/output-gateway";
6
+ import { NextFunction, Request, Response } from "@golemio/core/dist/shared/express";
7
+ export declare class PotholesController implements IPotholesController {
8
+ private repository;
9
+ private transformation;
10
+ constructor(repository: IPotholesRepository, transformation: AbstractTransformation<IAlertDto, IGeoJSONFeature>);
11
+ getAll: (req: Request, res: Response, next: NextFunction) => Promise<void>;
12
+ private parseParams;
13
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ var PotholesController_1;
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.PotholesController = void 0;
26
+ const ModuleContainerToken_1 = require("../ioc/ModuleContainerToken");
27
+ const DateTime_1 = require("@golemio/core/dist/helpers/DateTime");
28
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
29
+ const output_gateway_1 = require("@golemio/core/dist/output-gateway");
30
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
31
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
32
+ let PotholesController = exports.PotholesController = PotholesController_1 = class PotholesController {
33
+ constructor(repository, transformation) {
34
+ this.repository = repository;
35
+ this.transformation = transformation;
36
+ this.getAll = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
37
+ try {
38
+ const params = yield this.parseParams(req);
39
+ const result = yield this.repository.GetAll(params);
40
+ const transformedResult = (0, output_gateway_1.buildGeojsonFeatureCollection)(this.transformation.transformArray(result));
41
+ res.json(transformedResult);
42
+ }
43
+ catch (err) {
44
+ next(err);
45
+ }
46
+ });
47
+ }
48
+ parseParams(req) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ try {
51
+ const result = {
52
+ limit: req.query.limit ? Number(req.query.limit) : undefined,
53
+ offset: req.query.offset ? Number(req.query.offset) : undefined,
54
+ dateFrom: req.query.from ? req.query.from : (0, DateTime_1.dateTime)(new Date()).subtract(7, "days").toISOString(),
55
+ dateTo: req.query.to ? req.query.to : new Date().toISOString(),
56
+ };
57
+ return result;
58
+ }
59
+ catch (error) {
60
+ throw new golemio_errors_1.GeneralError("Param parsing error", PotholesController_1.name, error, 500);
61
+ }
62
+ });
63
+ }
64
+ };
65
+ exports.PotholesController = PotholesController = PotholesController_1 = __decorate([
66
+ (0, tsyringe_1.injectable)(),
67
+ __param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.PotholesRepository)),
68
+ __param(1, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.PotholesTransformation)),
69
+ __metadata("design:paramtypes", [Object, AbstractTransformation_1.AbstractTransformation])
70
+ ], PotholesController);
71
+ //# sourceMappingURL=PotholesController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PotholesController.js","sourceRoot":"","sources":["../../../src/output-gateway/controllers/PotholesController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGA,sEAAoE;AAEpE,kEAA+D;AAC/D,6GAA0G;AAC1G,sEAAmG;AAEnG,6EAAwE;AACxE,iEAAwE;AAGjE,IAAM,kBAAkB,uDAAxB,MAAM,kBAAkB;IAC3B,YACqD,UAAuC,EAExF,cAA0E;QAFjB,eAAU,GAAV,UAAU,CAAqB;QAEhF,mBAAc,GAAd,cAAc,CAAoD;QAGvE,WAAM,GAAG,CAAO,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YACtE,IAAI;gBACA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAEpD,MAAM,iBAAiB,GAAG,IAAA,8CAA6B,EAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;gBAEpG,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAC/B;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAA,CAAC;IAbC,CAAC;IAeU,WAAW,CAAC,GAAY;;YAClC,IAAI;gBACA,MAAM,MAAM,GAA6B;oBACrC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC5D,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC/D,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,KAAK,CAAC,IAAe,CAAC,CAAC,CAAC,IAAA,mBAAQ,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE;oBAC9G,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE,GAAG,CAAC,KAAK,CAAC,EAAa,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBAC7E,CAAC;gBAEF,OAAO,MAAM,CAAC;aACjB;YAAC,OAAO,KAAK,EAAE;gBACZ,MAAM,IAAI,6BAAY,CAAC,qBAAqB,EAAE,oBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aACtF;QACL,CAAC;KAAA;CACJ,CAAA;6BAlCY,kBAAkB;IAD9B,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,kBAAkB,CAAC,CAAA;IAC/C,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,sBAAsB,CAAC,CAAA;6CAC5B,+CAAsB;GAJzC,kBAAkB,CAkC9B"}
@@ -0,0 +1,6 @@
1
+ import { IAlertDto } from "../../schema-definitions/interfaces/IAlertDto";
2
+ export interface IPothole extends IAlertDto {
3
+ road_type_name: string | null;
4
+ published_at: Date;
5
+ last_reported: Date;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IPothole.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPothole.js","sourceRoot":"","sources":["../../../src/output-gateway/domain/IPothole.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ /// <reference types="express" />
2
+ import { NextFunction, Request, Response } from "@golemio/core/dist/shared/express";
3
+ export interface IPotholesController {
4
+ getAll(req: Request, res: Response, next: NextFunction): Promise<void>;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IPotholesController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPotholesController.js","sourceRoot":"","sources":["../../../src/output-gateway/domain/IPotholesController.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ export interface IPotholesOutputDto {
2
+ uuid: string;
3
+ city: string | null;
4
+ street: string | null;
5
+ road_type: string | null;
6
+ event_direction: number | null;
7
+ published_at: Date;
8
+ valid_from: Date;
9
+ last_reported_at: Date;
10
+ reliability: number | null;
11
+ confidence: number | null;
12
+ duplicate_count: number | null;
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IPotholesOutputDto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPotholesOutputDto.js","sourceRoot":"","sources":["../../../src/output-gateway/domain/IPotholesOutputDto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export interface IPotholesParams {
2
+ limit: number;
3
+ offset: number;
4
+ dateFrom: string;
5
+ dateTo: string;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IPotholesParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPotholesParams.js","sourceRoot":"","sources":["../../../src/output-gateway/domain/IPotholesParams.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { IAlertDto } from "../../schema-definitions/interfaces/IAlertDto";
2
+ import { IPotholesParams } from "./IPotholesParams";
3
+ export interface IPotholesRepository {
4
+ GetAll(params: Partial<IPotholesParams>): Promise<IAlertDto[]>;
5
+ GetOne(id: string): Promise<IAlertDto>;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IPotholesRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPotholesRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/domain/IPotholesRepository.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export declare class ParseDateTimeHelper {
2
+ static getDateTimeSeparately(datetime: Date): {
3
+ date: string;
4
+ time: string;
5
+ };
6
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParseDateTimeHelper = void 0;
4
+ const DateTime_1 = require("@golemio/core/dist/helpers/DateTime");
5
+ class ParseDateTimeHelper {
6
+ static getDateTimeSeparately(datetime) {
7
+ const wrappedDate = (0, DateTime_1.dateTime)(datetime, { timeZone: "Europe/Prague" });
8
+ const date = wrappedDate.format("yyyy-LL-dd");
9
+ const time = wrappedDate.format("HH:mm:ss");
10
+ return { date, time };
11
+ }
12
+ }
13
+ exports.ParseDateTimeHelper = ParseDateTimeHelper;
14
+ //# sourceMappingURL=ParseDateTimeHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParseDateTimeHelper.js","sourceRoot":"","sources":["../../../src/output-gateway/helpers/ParseDateTimeHelper.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAE/D,MAAa,mBAAmB;IACrB,MAAM,CAAC,qBAAqB,CAAC,QAAc;QAC9C,MAAM,WAAW,GAAG,IAAA,mBAAQ,EAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE5C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;CACJ;AARD,kDAQC"}
@@ -0,0 +1,2 @@
1
+ export * from "./routers/PotHolesRouter";
2
+ export declare const routers: import("@golemio/core/dist/helpers/routing/AbstractRouter").AbstractRouter[];
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.routers = void 0;
18
+ const PotHolesRouter_1 = require("./routers/PotHolesRouter");
19
+ __exportStar(require("./routers/PotHolesRouter"), exports);
20
+ exports.routers = [PotHolesRouter_1.v1PotHolesRouter];
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output-gateway/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAA4D;AAE5D,2DAAyC;AAE5B,QAAA,OAAO,GAAG,CAAC,iCAAgB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DependencyContainer } from "@golemio/core/dist/shared/tsyringe";
2
+ declare const potHolesContainer: DependencyContainer;
3
+ export { potHolesContainer as PotHolesContainer };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PotHolesContainer = void 0;
4
+ const PotholesController_1 = require("../controllers/PotholesController");
5
+ const PotholesRepository_1 = require("../repositories/PotholesRepository");
6
+ const PotholesDtoTransformation_1 = require("../transformation/PotholesDtoTransformation");
7
+ const Di_1 = require("@golemio/core/dist/output-gateway/ioc/Di");
8
+ const ModuleContainerToken_1 = require("./ModuleContainerToken");
9
+ //container
10
+ const potHolesContainer = Di_1.OutputGatewayContainer.createChildContainer();
11
+ exports.PotHolesContainer = potHolesContainer;
12
+ //#region Repositories
13
+ potHolesContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.PotholesRepository, PotholesRepository_1.PotholesRepository);
14
+ //#endregion
15
+ //#region Transformations
16
+ potHolesContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.PotholesTransformation, PotholesDtoTransformation_1.PotholesTransformation);
17
+ //#endregion
18
+ //#region Controllers
19
+ potHolesContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.PotholesController, PotholesController_1.PotholesController);
20
+ //# sourceMappingURL=Di.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/output-gateway/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,0EAAwE;AACxE,2EAAyE;AACzE,2FAAsF;AACtF,iEAAkF;AAElF,iEAA8D;AAE9D,WAAW;AACX,MAAM,iBAAiB,GAAwB,2BAAsB,CAAC,oBAAoB,EAAE,CAAC;AAc/D,8CAAiB;AAZ/C,sBAAsB;AACtB,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;AACjG,YAAY;AAEZ,yBAAyB;AACzB,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,sBAAsB,EAAE,kDAAsB,CAAC,CAAC;AACzG,YAAY;AAEZ,qBAAqB;AACrB,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ declare const ModuleContainerToken: {
2
+ PotholesRepository: symbol;
3
+ PotholesTransformation: symbol;
4
+ PotholesController: symbol;
5
+ };
6
+ export { ModuleContainerToken };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModuleContainerToken = void 0;
4
+ const ModuleContainerToken = {
5
+ PotholesRepository: Symbol(),
6
+ PotholesTransformation: Symbol(),
7
+ PotholesController: Symbol(),
8
+ };
9
+ exports.ModuleContainerToken = ModuleContainerToken;
10
+ //# sourceMappingURL=ModuleContainerToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/output-gateway/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,kBAAkB,EAAE,MAAM,EAAE;IAC5B,sBAAsB,EAAE,MAAM,EAAE;IAChC,kBAAkB,EAAE,MAAM,EAAE;CAC/B,CAAC;AAEO,oDAAoB"}
@@ -0,0 +1,10 @@
1
+ import { IPothole } from "../domain/IPothole";
2
+ import { IPotholesRepository } from "../domain/IPotholesRepository";
3
+ import { SequelizeModel } from "@golemio/core/dist/output-gateway/models";
4
+ import { IPotholesParams } from "../domain/IPotholesParams";
5
+ export declare class PotholesRepository extends SequelizeModel implements IPotholesRepository {
6
+ constructor();
7
+ GetAll(params: Partial<IPotholesParams>): Promise<IPothole[]>;
8
+ private prepareWhereAndOrder;
9
+ GetOne(id: any): Promise<any>;
10
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.PotholesRepository = void 0;
27
+ const index_1 = require("../../schema-definitions/index");
28
+ const models_1 = require("@golemio/core/dist/output-gateway/models");
29
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
30
+ const sequelize_1 = __importStar(require("@golemio/core/dist/shared/sequelize"));
31
+ const PotholeModel_1 = require("./models/PotholeModel");
32
+ class PotholesRepository extends models_1.SequelizeModel {
33
+ constructor() {
34
+ super("PotholesRepository", "v_waze_potholes_v2", PotholeModel_1.PotholeModel.attributeModel, {
35
+ schema: index_1.WazeCCP.pgSchema,
36
+ });
37
+ }
38
+ GetAll(params) {
39
+ try {
40
+ const { whereAttributes, order } = this.prepareWhereAndOrder(params);
41
+ const bindParams = {
42
+ dateFrom: params.dateFrom,
43
+ dateTo: params.dateTo,
44
+ };
45
+ return this.sequelizeModel.findAll({
46
+ attributes: {
47
+ exclude: [
48
+ "pub_millis",
49
+ "pub_utc_date",
50
+ "country",
51
+ "report_description",
52
+ "report_rating",
53
+ "type",
54
+ "subtype",
55
+ "report_by_municipality_user",
56
+ "thumbs_up",
57
+ "jam_uuid",
58
+ "downloaded_at",
59
+ "create_batch_id",
60
+ "created_at",
61
+ "created_by",
62
+ "update_batch_id",
63
+ "updated_by",
64
+ ],
65
+ },
66
+ where: whereAttributes,
67
+ limit: params.limit,
68
+ offset: params.offset,
69
+ order,
70
+ bind: bindParams,
71
+ raw: true,
72
+ });
73
+ }
74
+ catch (err) {
75
+ throw new golemio_errors_1.GeneralError("Database error ~ GetAll Potholes", this.name, err, 500);
76
+ }
77
+ }
78
+ prepareWhereAndOrder(params) {
79
+ let whereAttributes = {
80
+ subtype: "HAZARD_ON_ROAD_POT_HOLE",
81
+ };
82
+ const order = [];
83
+ order.push([sequelize_1.default.col("uuid"), "asc"]);
84
+ order.push([sequelize_1.default.col("pub_utc_date"), "desc"]);
85
+ const literalConditions = [];
86
+ if (params.dateFrom) {
87
+ literalConditions.push(sequelize_1.default.literal(`(pub_utc_date > $dateFrom)`));
88
+ }
89
+ if (params.dateTo) {
90
+ literalConditions.push(sequelize_1.default.literal(`(pub_utc_date <= $dateTo)`));
91
+ }
92
+ if (literalConditions.length > 0) {
93
+ whereAttributes = Object.assign(Object.assign({}, whereAttributes), { [sequelize_1.Op.and]: literalConditions });
94
+ }
95
+ return { whereAttributes, order };
96
+ }
97
+ GetOne(id) {
98
+ throw new Error("Method not implemented.");
99
+ }
100
+ }
101
+ exports.PotholesRepository = PotholesRepository;
102
+ //# sourceMappingURL=PotholesRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PotholesRepository.js","sourceRoot":"","sources":["../../../src/output-gateway/repositories/PotholesRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,0DAAqC;AACrC,qEAA0E;AAC1E,6EAAwE;AACxE,iFAAoE;AAEpE,wDAAqD;AAErD,MAAa,kBAAmB,SAAQ,uBAAc;IAClD;QACI,KAAK,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,2BAAY,CAAC,cAAc,EAAE;YAC3E,MAAM,EAAE,eAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,MAAgC;QAC1C,IAAI;YACA,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAErE,MAAM,UAAU,GAAG;gBACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;aACxB,CAAC;YAEF,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAe;gBAC7C,UAAU,EAAE;oBACR,OAAO,EAAE;wBACL,YAAY;wBACZ,cAAc;wBACd,SAAS;wBACT,oBAAoB;wBACpB,eAAe;wBACf,MAAM;wBACN,SAAS;wBACT,6BAA6B;wBAC7B,WAAW;wBACX,UAAU;wBACV,eAAe;wBACf,iBAAiB;wBACjB,YAAY;wBACZ,YAAY;wBACZ,iBAAiB;wBACjB,YAAY;qBACf;iBACJ;gBACD,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK;gBACL,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,IAAI;aACZ,CAAC,CAAC;SACN;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,IAAI,6BAAY,CAAC,kCAAkC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACnF;IACL,CAAC;IAEO,oBAAoB,CAAC,MAAgC;QACzD,IAAI,eAAe,GAA2B;YAC1C,OAAO,EAAE,yBAAyB;SACrC,CAAC;QACF,MAAM,KAAK,GAA0B,EAAE,CAAC;QAExC,KAAK,CAAC,IAAI,CAAC,CAAC,mBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,CAAC,mBAAS,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAEpD,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,QAAQ,EAAE;YACjB,iBAAiB,CAAC,IAAI,CAAC,mBAAS,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC;SAC3E;QAED,IAAI,MAAM,CAAC,MAAM,EAAE;YACf,iBAAiB,CAAC,IAAI,CAAC,mBAAS,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;SAC1E;QAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,eAAe,mCACR,eAAe,KAClB,CAAC,cAAE,CAAC,GAAG,CAAC,EAAE,iBAAiB,GAC9B,CAAC;SACL;QAED,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,EAAO;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;CACJ;AAhFD,gDAgFC"}
@@ -0,0 +1,21 @@
1
+ import { IPothole } from "../../domain/IPothole";
2
+ import { AlertDto } from "../../../schema-definitions/models/AlertDto";
3
+ import { DataTypes } from "@golemio/core/dist/shared/sequelize";
4
+ export declare class PotholeModel extends AlertDto implements IPothole {
5
+ road_type_name: string | null;
6
+ published_at: Date;
7
+ last_reported: Date;
8
+ static attributeModel: {
9
+ road_type_name: {
10
+ type: DataTypes.TextDataTypeConstructor;
11
+ };
12
+ published_at: {
13
+ type: DataTypes.DateDataTypeConstructor;
14
+ allowNull: boolean;
15
+ };
16
+ last_reported: {
17
+ type: DataTypes.DateDataTypeConstructor;
18
+ allowNull: boolean;
19
+ };
20
+ };
21
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PotholeModel = void 0;
4
+ const AlertDto_1 = require("../../../schema-definitions/models/AlertDto");
5
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
6
+ class PotholeModel extends AlertDto_1.AlertDto {
7
+ }
8
+ exports.PotholeModel = PotholeModel;
9
+ PotholeModel.attributeModel = Object.assign(Object.assign({}, AlertDto_1.AlertDto.attributeModel), { road_type_name: { type: sequelize_1.DataTypes.TEXT }, published_at: { type: sequelize_1.DataTypes.DATE, allowNull: false }, last_reported: { type: sequelize_1.DataTypes.DATE, allowNull: false } });
10
+ //# sourceMappingURL=PotholeModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PotholeModel.js","sourceRoot":"","sources":["../../../../src/output-gateway/repositories/models/PotholeModel.ts"],"names":[],"mappings":";;;AACA,0EAAgD;AAChD,mEAAgE;AAEhE,MAAa,YAAa,SAAQ,mBAAQ;;AAA1C,oCAWC;AANiB,2BAAc,mCACrB,mBAAQ,CAAC,cAAc,KAC1B,cAAc,EAAE,EAAE,IAAI,EAAE,qBAAS,CAAC,IAAI,EAAE,EACxC,YAAY,EAAE,EAAE,IAAI,EAAE,qBAAS,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EACxD,aAAa,EAAE,EAAE,IAAI,EAAE,qBAAS,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAC3D"}
@@ -0,0 +1,8 @@
1
+ import { AbstractRouter } from "@golemio/core/dist/helpers/routing/AbstractRouter";
2
+ export declare class PotHolesRouter extends AbstractRouter {
3
+ private controller;
4
+ constructor();
5
+ protected initRoutes(expire?: string | number | undefined): void;
6
+ }
7
+ declare const v1PotHolesRouter: AbstractRouter;
8
+ export { v1PotHolesRouter };
@@ -0,0 +1,36 @@
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.v1PotHolesRouter = exports.PotHolesRouter = void 0;
13
+ const AbstractRouter_1 = require("@golemio/core/dist/helpers/routing/AbstractRouter");
14
+ const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
15
+ const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
16
+ const redis_1 = require("@golemio/core/dist/output-gateway/redis");
17
+ const Di_1 = require("../ioc/Di");
18
+ const ModuleContainerToken_1 = require("../ioc/ModuleContainerToken");
19
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
20
+ let PotHolesRouter = exports.PotHolesRouter = class PotHolesRouter extends AbstractRouter_1.AbstractRouter {
21
+ constructor() {
22
+ super("v1", "potholes");
23
+ this.controller = Di_1.PotHolesContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.PotholesController);
24
+ this.initRoutes();
25
+ }
26
+ initRoutes(expire) {
27
+ this.router.get("/data", [(0, express_validator_1.query)("from").optional().isISO8601(), (0, express_validator_1.query)("to").optional().isISO8601()], Validation_1.pagination, Validation_1.checkErrors, (0, Validation_1.paginationLimitMiddleware)(this.path), (0, redis_1.useCacheMiddleware)(), this.controller.getAll);
28
+ }
29
+ };
30
+ exports.PotHolesRouter = PotHolesRouter = __decorate([
31
+ (0, tsyringe_1.injectable)(),
32
+ __metadata("design:paramtypes", [])
33
+ ], PotHolesRouter);
34
+ const v1PotHolesRouter = new PotHolesRouter();
35
+ exports.v1PotHolesRouter = v1PotHolesRouter;
36
+ //# sourceMappingURL=PotHolesRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PotHolesRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/routers/PotHolesRouter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sFAAmF;AACnF,mFAAoE;AACpE,6EAAkH;AAClH,mEAA6E;AAE7E,kCAA+C;AAC/C,sEAAoE;AACpE,iEAAgE;AAGzD,IAAM,cAAc,4BAApB,MAAM,cAAe,SAAQ,+BAAc;IAE9C;QACI,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,sBAAiB,CAAC,OAAO,CAAsB,2CAAoB,CAAC,kBAAkB,CAAC,CAAC;QAC1G,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU,CAAC,MAAoC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,OAAO,EACP,CAAC,IAAA,yBAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,IAAA,yBAAK,EAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,EAC1E,uBAAU,EACV,wBAAW,EACX,IAAA,sCAAyB,EAAC,IAAI,CAAC,IAAI,CAAC,EACpC,IAAA,0BAAkB,GAAE,EACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;IACN,CAAC;CACJ,CAAA;yBAnBY,cAAc;IAD1B,IAAA,qBAAU,GAAE;;GACA,cAAc,CAmB1B;AAED,MAAM,gBAAgB,GAAmB,IAAI,cAAc,EAAE,CAAC;AAErD,4CAAgB"}
@@ -0,0 +1,7 @@
1
+ import { IPothole } from "../domain/IPothole";
2
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
3
+ import { IGeoJSONFeature } from "@golemio/core/dist/output-gateway";
4
+ export declare class PotholesTransformation extends AbstractTransformation<IPothole, IGeoJSONFeature> {
5
+ name: string;
6
+ protected transformInternal: (element: IPothole) => IGeoJSONFeature;
7
+ }
@@ -0,0 +1,39 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.PotholesTransformation = void 0;
10
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
11
+ const output_gateway_1 = require("@golemio/core/dist/output-gateway");
12
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
13
+ let PotholesTransformation = exports.PotholesTransformation = class PotholesTransformation extends AbstractTransformation_1.AbstractTransformation {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.name = "PotholesTransformation";
17
+ this.transformInternal = (element) => {
18
+ var _a, _b, _c, _d, _e, _f, _g;
19
+ const properties = {
20
+ uuid: element.uuid,
21
+ city: (_a = element.city) !== null && _a !== void 0 ? _a : null,
22
+ street: (_b = element.street) !== null && _b !== void 0 ? _b : null,
23
+ road_type: (_c = element.road_type_name) !== null && _c !== void 0 ? _c : null,
24
+ event_direction: (_d = element.magvar) !== null && _d !== void 0 ? _d : null,
25
+ published_at: element.published_at,
26
+ valid_from: element.valid_from,
27
+ last_reported_at: element.last_reported,
28
+ reliability: (_e = element.reliability) !== null && _e !== void 0 ? _e : null,
29
+ confidence: (_f = element.confidence) !== null && _f !== void 0 ? _f : null,
30
+ duplicate_count: (_g = element.duplicate_count) !== null && _g !== void 0 ? _g : null,
31
+ };
32
+ return (0, output_gateway_1.buildGeojsonFeature)(Object.assign(Object.assign({}, properties), { lon: element.location.x, lat: element.location.y }), "lon", "lat", true);
33
+ };
34
+ }
35
+ };
36
+ exports.PotholesTransformation = PotholesTransformation = __decorate([
37
+ (0, tsyringe_1.injectable)()
38
+ ], PotholesTransformation);
39
+ //# sourceMappingURL=PotholesDtoTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PotholesDtoTransformation.js","sourceRoot":"","sources":["../../../src/output-gateway/transformation/PotholesDtoTransformation.ts"],"names":[],"mappings":";;;;;;;;;AAEA,6GAA0G;AAC1G,sEAAyF;AACzF,iEAAgE;AAGzD,IAAM,sBAAsB,oCAA5B,MAAM,sBAAuB,SAAQ,+CAAiD;IAAtF;;QACI,SAAI,GAAW,wBAAwB,CAAC;QAErC,sBAAiB,GAAG,CAAC,OAAiB,EAAE,EAAE;;YAChD,MAAM,UAAU,GAAuB;gBACnC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAI;gBAC1B,MAAM,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAI;gBAC9B,SAAS,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,IAAI;gBACzC,eAAe,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAI;gBACvC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,gBAAgB,EAAE,OAAO,CAAC,aAAa;gBACvC,WAAW,EAAE,MAAA,OAAO,CAAC,WAAW,mCAAI,IAAI;gBACxC,UAAU,EAAE,MAAA,OAAO,CAAC,UAAU,mCAAI,IAAI;gBACtC,eAAe,EAAE,MAAA,OAAO,CAAC,eAAe,mCAAI,IAAI;aACnD,CAAC;YAEF,OAAO,IAAA,oCAAmB,kCAAM,UAAU,KAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAI,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACxH,CAAC,CAAC;IACN,CAAC;CAAA,CAAA;iCApBY,sBAAsB;IADlC,IAAA,qBAAU,GAAE;GACA,sBAAsB,CAoBlC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/waze-ccp",
3
- "version": "1.1.8-dev.1078494126",
3
+ "version": "1.1.8-dev.1082572769",
4
4
  "description": "Golemio Waze CCP Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -8,10 +8,14 @@
8
8
  "build": "rimraf ./dist && tspc -p ./tsconfig.build.json",
9
9
  "build-minimal": "run-s 'build -- --sourceMap false --declaration false'",
10
10
  "build-watch": "run-s 'build -- --watch --preserveWatchOutput'",
11
+ "pretest": "golemio import-db-data --postgres",
11
12
  "test": "cross-env NODE_ENV=test mocha --exit --check-leaks --timeout 120000 -r ts-node/register -r tsconfig-paths/register -r dotenv/config --file 'test/setup.ts' 'test/**/*.test.ts'",
12
13
  "test-debug": "run-s 'test -- --inspect-brk=9230'",
13
14
  "code-coverage": "nyc run-s 'test -- -r source-map-support/register'",
15
+ "apidocs-test": "npm run apidocs-test-output",
16
+ "apidocs-test-output": "cross-env NODE_ENV=test golemio swagger api-test --oas docs/openapi-output.yaml --script test/api-docs/output-gateway/server.js",
14
17
  "generate-docs": "typedoc --out docs/typedoc src",
18
+ "migrate-db": "golemio migrate-db up --postgres",
15
19
  "lint": "eslint --cache \"{src,test}/**/*.ts\""
16
20
  },
17
21
  "keywords": [
@@ -29,6 +33,7 @@
29
33
  "yarn": "Use npm!"
30
34
  },
31
35
  "devDependencies": {
36
+ "@apideck/portman": "^1.23.1",
32
37
  "@commitlint/cli": "^11.0.0",
33
38
  "@commitlint/config-conventional": "^11.0.0",
34
39
  "@golemio/cli": "1.5.0",
@@ -41,6 +46,7 @@
41
46
  "@types/node": "^18.13.0",
42
47
  "@types/object-hash": "^1.3.0",
43
48
  "@types/sinon": "^9.0.10",
49
+ "@types/supertest": "^2.0.16",
44
50
  "chai": "4.2.0",
45
51
  "chai-as-promised": "7.1.1",
46
52
  "cross-env": "^7.0.3",
@@ -54,6 +60,7 @@
54
60
  "rimraf": "^3.0.2",
55
61
  "sinon": "^9.2.3",
56
62
  "source-map-support": "0.5.21",
63
+ "supertest": "^6.3.3",
57
64
  "ts-node": "^10.9.1",
58
65
  "ts-patch": "3.0.0-beta3",
59
66
  "tsconfig-paths": "^4.2.0",