@golemio/parkings 1.7.11-dev.1185129708 → 1.7.11-dev.1187905601
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/example/00_clear_test_data.sql +1 -0
- package/db/example/04_tsk_parking_v2.sql +6 -0
- package/db/example/98_calculate_occupancy.sql +1 -0
- package/db/migrations/postgresql/20240205151926-average-occupancy.js +53 -0
- package/db/migrations/postgresql/sqls/20240205151926-average-occupancy-down.sql +3 -0
- package/db/migrations/postgresql/sqls/20240205151926-average-occupancy-up.sql +66 -0
- package/dist/integration-engine/ioc/Di.js +5 -1
- package/dist/integration-engine/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +2 -0
- package/dist/integration-engine/ioc/ModuleContainerToken.js +4 -0
- package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
- package/dist/integration-engine/repositories/AverageOccupancyRepository.d.ts +9 -0
- package/dist/integration-engine/repositories/AverageOccupancyRepository.js +41 -0
- package/dist/integration-engine/repositories/AverageOccupancyRepository.js.map +1 -0
- package/dist/integration-engine/workers/NewParkingsWorker.js +1 -0
- package/dist/integration-engine/workers/NewParkingsWorker.js.map +1 -1
- package/dist/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.js.map +1 -1
- package/dist/integration-engine/workers/tasks/CalculateAverageOccupancyTask.d.ts +9 -0
- package/dist/integration-engine/workers/tasks/CalculateAverageOccupancyTask.js +57 -0
- package/dist/integration-engine/workers/tasks/CalculateAverageOccupancyTask.js.map +1 -0
- package/dist/output-gateway/controllers/v3/V3ParkingController.d.ts +5 -1
- package/dist/output-gateway/controllers/v3/V3ParkingController.js +19 -3
- package/dist/output-gateway/controllers/v3/V3ParkingController.js.map +1 -1
- package/dist/output-gateway/controllers/v3/V3ParkingMeasurementsController.d.ts +10 -0
- package/dist/output-gateway/controllers/v3/V3ParkingMeasurementsController.js +56 -0
- package/dist/output-gateway/controllers/v3/V3ParkingMeasurementsController.js.map +1 -0
- package/dist/output-gateway/data-access/ParkingAverageOccupancyRepository.d.ts +12 -0
- package/dist/output-gateway/data-access/ParkingAverageOccupancyRepository.js +87 -0
- package/dist/output-gateway/data-access/ParkingAverageOccupancyRepository.js.map +1 -0
- package/dist/output-gateway/data-access/ParkingLatestMeasurementRepository.d.ts +8 -0
- package/dist/output-gateway/data-access/ParkingLatestMeasurementRepository.js +72 -0
- package/dist/output-gateway/data-access/ParkingLatestMeasurementRepository.js.map +1 -0
- package/dist/output-gateway/data-access/ParkingMeasurementRepository.d.ts +6 -0
- package/dist/output-gateway/data-access/ParkingMeasurementRepository.js +33 -0
- package/dist/output-gateway/data-access/ParkingMeasurementRepository.js.map +1 -0
- package/dist/output-gateway/data-access/ParkingRepository.d.ts +6 -4
- package/dist/output-gateway/data-access/ParkingRepository.js +44 -3
- package/dist/output-gateway/data-access/ParkingRepository.js.map +1 -1
- package/dist/output-gateway/data-access/interfaces/IParkingMeasurementsDto.d.ts +4 -0
- package/dist/output-gateway/data-access/interfaces/IParkingMeasurementsDto.js +3 -0
- package/dist/output-gateway/data-access/interfaces/IParkingMeasurementsDto.js.map +1 -0
- package/dist/output-gateway/helpers/params/IParkingMeasurementsParams.d.ts +5 -0
- package/dist/output-gateway/helpers/params/IParkingMeasurementsParams.js +3 -0
- package/dist/output-gateway/helpers/params/IParkingMeasurementsParams.js.map +1 -0
- package/dist/output-gateway/index.js +3 -4
- package/dist/output-gateway/index.js.map +1 -1
- package/dist/output-gateway/ioc/Di.js +6 -0
- package/dist/output-gateway/ioc/Di.js.map +1 -1
- package/dist/output-gateway/ioc/ModuleContainerToken.d.ts +3 -0
- package/dist/output-gateway/ioc/ModuleContainerToken.js +3 -0
- package/dist/output-gateway/ioc/ModuleContainerToken.js.map +1 -1
- package/dist/output-gateway/routers/index.d.ts +1 -0
- package/dist/output-gateway/routers/index.js +1 -0
- package/dist/output-gateway/routers/index.js.map +1 -1
- package/dist/output-gateway/routers/v3/V3ParkingMeasurementsRouter.d.ts +3 -0
- package/dist/output-gateway/routers/v3/V3ParkingMeasurementsRouter.js +45 -0
- package/dist/output-gateway/routers/v3/V3ParkingMeasurementsRouter.js.map +1 -0
- package/dist/output-gateway/routers/v3/V3ParkingRouter.js +1 -0
- package/dist/output-gateway/routers/v3/V3ParkingRouter.js.map +1 -1
- package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingMeasurementsDto.d.ts +15 -0
- package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingMeasurementsDto.js +3 -0
- package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingMeasurementsDto.js.map +1 -0
- package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.d.ts +9 -4
- package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.js +13 -0
- package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.js.map +1 -1
- package/dist/output-gateway/transformations/v3/ParkingMeasurementDtoTransformation.d.ts +7 -0
- package/dist/output-gateway/transformations/v3/ParkingMeasurementDtoTransformation.js +27 -0
- package/dist/output-gateway/transformations/v3/ParkingMeasurementDtoTransformation.js.map +1 -0
- package/dist/schema-definitions/index.d.ts +5 -0
- package/dist/schema-definitions/index.js +5 -0
- package/dist/schema-definitions/index.js.map +1 -1
- package/dist/schema-definitions/models/ParkingAverageOccupancyModel.d.ts +15 -0
- package/dist/schema-definitions/models/ParkingAverageOccupancyModel.js +32 -0
- package/dist/schema-definitions/models/ParkingAverageOccupancyModel.js.map +1 -0
- package/dist/schema-definitions/models/ParkingMeasurementsModel.d.ts +15 -0
- package/dist/schema-definitions/models/ParkingMeasurementsModel.js +26 -0
- package/dist/schema-definitions/models/ParkingMeasurementsModel.js.map +1 -0
- package/dist/schema-definitions/models/interfaces/IParking.d.ts +2 -1
- package/dist/schema-definitions/models/interfaces/IParkingAverageOccupancy.d.ts +10 -0
- package/dist/schema-definitions/models/interfaces/IParkingAverageOccupancy.js +3 -0
- package/dist/schema-definitions/models/interfaces/IParkingAverageOccupancy.js.map +1 -0
- package/dist/schema-definitions/models/interfaces/IParkingMeasurements.d.ts +10 -0
- package/dist/schema-definitions/models/interfaces/IParkingMeasurements.js +3 -0
- package/dist/schema-definitions/models/interfaces/IParkingMeasurements.js.map +1 -0
- package/docs/implementation-documentation.md +30 -3
- package/docs/openapi-output.yaml +177 -11
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
DELETE FROM parkings_tariffs;
|
|
2
2
|
DELETE FROM parkings_measurements_actual;
|
|
3
3
|
DELETE FROM parkings_measurements_part;
|
|
4
|
+
DELETE FROM parkings_average_occupancy;
|
|
4
5
|
DELETE FROM parkings_location;
|
|
5
6
|
DELETE FROM parkings;
|
|
6
7
|
DELETE FROM common.citydistricts where district_name_slug = 'praha-10';
|
|
@@ -19,3 +19,9 @@ INSERT INTO parkings_location (id,"source",source_id,data_provider,"location",ce
|
|
|
19
19
|
INSERT INTO parkings_tariffs (tariff_id,"source",last_updated,payment_mode,payment_additional_description,free_of_charge,url_link_address,charge_band_name,accepts_payment_card,accepts_cash,accepts_mobile_payment,charge_currency,charge,charge_type,charge_order_index,charge_interval,max_iterations_of_charge,min_iterations_of_charge,start_time_of_period,end_time_of_period,allowed_vehicle_type,allowed_fuel_type,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by,accepts_litacka,valid_from,valid_to,maximum_duration_seconds,periods_of_time) VALUES
|
|
20
20
|
('0639c53f-c555-49ac-b5e0-bb3d50acf588','tsk_v2','2023-10-04 22:09:18.720','pre_paid',NULL,false,NULL,'PO-NE 00-06+08-24',NULL,NULL,true,'czk',1.3333333333333333,'other',0,60,1440,1,NULL,NULL,NULL,NULL,NULL,'2023-10-04 22:09:19.749',NULL,NULL,'2023-10-04 22:09:19.749',NULL,true,'2022-06-21 10:11:00.000','2999-12-31 00:00:00.000',3600,'[{"ph": "PH_off", "end": "05:59:00", "start": "00:00:00", "day_in_week": "Mo"}, {"ph": "PH_off", "end": "05:59:00", "start": "00:00:00", "day_in_week": "Tu"}, {"ph": "PH_off", "end": "05:59:00", "start": "00:00:00", "day_in_week": "We"}, {"ph": "PH_off", "end": "05:59:00", "start": "00:00:00", "day_in_week": "Th"}, {"ph": "PH_off", "end": "05:59:00", "start": "00:00:00", "day_in_week": "Fr"}, {"ph": "PH_off", "end": "05:59:00", "start": "00:00:00", "day_in_week": "Sa"}, {"ph": "PH_off", "end": "05:59:00", "start": "00:00:00", "day_in_week": "Su"}]'),
|
|
21
21
|
('0639c53f-c555-49ac-b5e0-bb3d50acf588','tsk_v2','2023-10-04 22:09:18.720','pre_paid',NULL,false,NULL,'PO-NE 00-06+08-24',NULL,NULL,true,'czk',1.3333333333333333,'other',1,60,1440,1,NULL,NULL,NULL,NULL,NULL,'2023-10-04 22:09:19.750',NULL,NULL,'2023-10-04 22:09:19.750',NULL,true,'2022-06-21 10:11:15.000','2999-12-31 00:00:00.000',3600,'[{"ph": "PH_off", "end": "23:59:00", "start": "08:00:00", "day_in_week": "Mo"}, {"ph": "PH_off", "end": "23:59:00", "start": "08:00:00", "day_in_week": "Tu"}, {"ph": "PH_off", "end": "23:59:00", "start": "08:00:00", "day_in_week": "We"}, {"ph": "PH_off", "end": "23:59:00", "start": "08:00:00", "day_in_week": "Th"}, {"ph": "PH_off", "end": "23:59:00", "start": "08:00:00", "day_in_week": "Fr"}, {"ph": "PH_off", "end": "23:59:00", "start": "08:00:00", "day_in_week": "Sa"}, {"ph": "PH_off", "end": "23:59:00", "start": "08:00:00", "day_in_week": "Su"}]');
|
|
22
|
+
|
|
23
|
+
INSERT INTO parkings_measurements_part ("source",source_id,parking_id,available_spot_number,closed_spot_number,occupied_spot_number,total_spot_number,date_modified,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
|
|
24
|
+
('tsk_v2','c66bb668-eab6-49da-bc84-002263e1dce0','tsk2-P1-0586',38,NULL,66,104,'2024-01-23 10:02:00.000',NULL,'2023-01-23 10:00:01.951',NULL,NULL,'2023-01-23 10:00:01.951',NULL),
|
|
25
|
+
('tsk_v2','c66bb668-eab6-49da-bc84-002263e1dce0','tsk2-P1-0586',39,NULL,65,104,'2024-01-23 10:03:00.000',NULL,'2023-01-23 09:55:00.760',NULL,NULL,'2023-01-23 09:55:00.760',NULL),
|
|
26
|
+
('tsk_v2','c66bb668-eab6-49da-bc84-002263e1dce0','tsk2-P1-0586',40,NULL,64,104,'2024-01-23 10:04:00.000',NULL,'2023-01-23 09:50:07.824',NULL,NULL,'2023-01-23 09:50:07.824',NULL),
|
|
27
|
+
('tsk_v2','c66bb668-eab6-49da-bc84-002263e1dce0','tsk2-P1-0586',40,NULL,64,104,'2024-01-23 11:04:00.000',NULL,'2023-01-23 11:50:07.824',NULL,NULL,'2023-01-23 11:50:07.824',NULL);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
CALL calculate_average_occupancy();
|
|
@@ -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', '20240205151926-average-occupancy-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', '20240205151926-average-occupancy-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,66 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS parkings_average_occupancy (
|
|
2
|
+
parking_id varchar(50) NOT NULL,
|
|
3
|
+
source varchar(255) NOT NULL,
|
|
4
|
+
source_id varchar(255) NOT NULL,
|
|
5
|
+
day_of_week int4 NOT NULL,
|
|
6
|
+
"hour" int4 NOT NULL,
|
|
7
|
+
average_occupancy double precision NOT NULL,
|
|
8
|
+
record_count integer NOT NULL,
|
|
9
|
+
last_updated timestamptz NOT NULL,
|
|
10
|
+
create_batch_id int8 NULL,
|
|
11
|
+
created_at timestamptz NULL,
|
|
12
|
+
created_by varchar(150) NULL,
|
|
13
|
+
update_batch_id int8 NULL,
|
|
14
|
+
updated_at timestamptz NULL,
|
|
15
|
+
updated_by varchar(150) NULL,
|
|
16
|
+
|
|
17
|
+
CONSTRAINT parkings_average_occupancy_pkey PRIMARY KEY (source, source_id, day_of_week, "hour")
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
CREATE INDEX IF NOT EXISTS parkings_average_occupancy_last_updated ON parkings_average_occupancy USING btree (last_updated desc);
|
|
21
|
+
CREATE INDEX IF NOT EXISTS parkings_average_occupancy_parking_id ON parkings_average_occupancy (parking_id);
|
|
22
|
+
|
|
23
|
+
CREATE OR REPLACE PROCEDURE calculate_average_occupancy()
|
|
24
|
+
LANGUAGE plpgsql
|
|
25
|
+
SET search_path from CURRENT
|
|
26
|
+
AS $$
|
|
27
|
+
BEGIN
|
|
28
|
+
WITH average_occupancy_agg AS (
|
|
29
|
+
SELECT
|
|
30
|
+
parking_id,
|
|
31
|
+
"source",
|
|
32
|
+
"source_id",
|
|
33
|
+
extract(dow FROM "date_modified" AT TIME ZONE 'Europe/Prague') AS "day_of_week",
|
|
34
|
+
extract(hour FROM "date_modified" AT TIME ZONE 'Europe/Prague') AS "hour",
|
|
35
|
+
avg("occupied_spot_number") AS "average_occupancy",
|
|
36
|
+
count(source_id) as record_count,
|
|
37
|
+
MAX(date_modified) as last_updated,
|
|
38
|
+
NULL::bigint as create_batch_id,
|
|
39
|
+
CURRENT_TIMESTAMP as created_at,
|
|
40
|
+
NULL::bigint as created_by,
|
|
41
|
+
NULL::bigint as update_batch_id,
|
|
42
|
+
CURRENT_TIMESTAMP as updated_at,
|
|
43
|
+
NULL::bigint as updated_by
|
|
44
|
+
FROM parkings_measurements_part
|
|
45
|
+
WHERE total_spot_number IS NOT null AND date_modified > coalesce((SELECT MAX(last_updated) FROM parkings_average_occupancy), to_timestamp(0))
|
|
46
|
+
GROUP BY 1, 2, 3, 4, 5
|
|
47
|
+
ORDER BY 1, 2, 3, 4
|
|
48
|
+
)
|
|
49
|
+
INSERT INTO parkings_average_occupancy (parking_id,"source",source_id,day_of_week,"hour",average_occupancy,record_count,last_updated,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by)
|
|
50
|
+
SELECT parking_id,"source",source_id,day_of_week,"hour",average_occupancy,record_count,last_updated,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by
|
|
51
|
+
FROM average_occupancy_agg
|
|
52
|
+
ON CONFLICT (source, source_id, day_of_week, "hour") DO UPDATE
|
|
53
|
+
SET
|
|
54
|
+
average_occupancy = ((EXCLUDED.average_occupancy * EXCLUDED.record_count) + (parkings_average_occupancy.average_occupancy * parkings_average_occupancy.record_count)) / (EXCLUDED.record_count + parkings_average_occupancy.record_count),
|
|
55
|
+
record_count = EXCLUDED.record_count + parkings_average_occupancy.record_count,
|
|
56
|
+
last_updated = EXCLUDED.last_updated,
|
|
57
|
+
updated_at = NOW();
|
|
58
|
+
END
|
|
59
|
+
$$
|
|
60
|
+
;
|
|
61
|
+
|
|
62
|
+
CREATE OR REPLACE VIEW v_parkings_latest_measurements AS
|
|
63
|
+
SELECT DISTINCT ON (source, source_id) *
|
|
64
|
+
FROM parkings_measurements_part m
|
|
65
|
+
WHERE total_spot_number IS NOT NULL AND date_modified >= NOW() - INTERVAL '1h'
|
|
66
|
+
ORDER BY m.source ASC, m.source_id ASC, m.date_modified DESC;
|
|
@@ -9,6 +9,7 @@ const OsmDataSource_1 = require("../datasources/osm/OsmDataSource");
|
|
|
9
9
|
const Smart4CityListDataSourceProvider_1 = require("../datasources/smart4city/Smart4CityListDataSourceProvider");
|
|
10
10
|
const Smart4CityLocationDataSourceProvider_1 = require("../datasources/smart4city/Smart4CityLocationDataSourceProvider");
|
|
11
11
|
const SmartCityListDatasourceCache_1 = require("../datasources/smart4city/SmartCityListDatasourceCache");
|
|
12
|
+
const AverageOccupancyRepository_1 = require("../repositories/AverageOccupancyRepository");
|
|
12
13
|
const ParkingMachinesRepository_1 = require("../repositories/ParkingMachinesRepository");
|
|
13
14
|
const ParkingTariffsRepository_1 = require("../repositories/ParkingTariffsRepository");
|
|
14
15
|
const ParkingsBusinessErrorsRepository_1 = require("../repositories/ParkingsBusinessErrorsRepository");
|
|
@@ -17,6 +18,7 @@ const ParkingsRepository_1 = require("../repositories/ParkingsRepository");
|
|
|
17
18
|
const ParkingsRedisModel_1 = require("../repositories/redis/ParkingsRedisModel");
|
|
18
19
|
const TskParkingMachinesTransformation_1 = require("../transformations/TskParkingMachinesTransformation");
|
|
19
20
|
const GenerateSmart4CityTaskListTask_1 = require("../workers/tasks/GenerateSmart4CityTaskListTask");
|
|
21
|
+
const CalculateAverageOccupancyTask_1 = require("../workers/tasks/CalculateAverageOccupancyTask");
|
|
20
22
|
const SaveMrParkitDataTask_1 = require("../workers/tasks/SaveMrParkitDataTask");
|
|
21
23
|
const SaveOsmDataTask_1 = require("../workers/tasks/SaveOsmDataTask");
|
|
22
24
|
const UpdateSmart4CityLocationsTask_1 = require("../workers/tasks/UpdateSmart4CityLocationsTask");
|
|
@@ -65,7 +67,8 @@ parkingsContainer
|
|
|
65
67
|
.register(ModuleContainerToken_1.ModuleContainerToken.ParkingsLocationRepository, ParkingsLocationRepository_1.ParkingsLocationRepository)
|
|
66
68
|
.register(ModuleContainerToken_1.ModuleContainerToken.ParkingTariffsRepository, ParkingTariffsRepository_1.ParkingTariffsRepository)
|
|
67
69
|
.register(ModuleContainerToken_1.ModuleContainerToken.ParkingsBusinessErrorsRepository, ParkingsBusinessErrorsRepository_1.ParkingsBusinessErrorsRepository)
|
|
68
|
-
.register(ModuleContainerToken_1.ModuleContainerToken.ParkingMachinesRepository, ParkingMachinesRepository_1.ParkingMachinesRepository)
|
|
70
|
+
.register(ModuleContainerToken_1.ModuleContainerToken.ParkingMachinesRepository, ParkingMachinesRepository_1.ParkingMachinesRepository)
|
|
71
|
+
.register(ModuleContainerToken_1.ModuleContainerToken.AverageOccupancyRepository, AverageOccupancyRepository_1.AverageOccupancyRepository);
|
|
69
72
|
parkingsContainer.register(ModuleContainerToken_1.ModuleContainerToken.RedisModel, ParkingsRedisModel_1.ParkingsRedisModel);
|
|
70
73
|
//#endregion
|
|
71
74
|
//#region Helpers
|
|
@@ -77,4 +80,5 @@ parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.
|
|
|
77
80
|
parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.UpdateSmart4CityLocationsTask, UpdateSmart4CityLocationsTask_1.UpdateSmart4CityLocationsTask);
|
|
78
81
|
parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.UpdateSmart4CityMeasurementsTask, UpdateSmart4CityMeasurementsTask_1.UpdateSmart4CityMeasurementsTask);
|
|
79
82
|
parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.SaveOsmDataTask, SaveOsmDataTask_1.SaveOsmDataTask);
|
|
83
|
+
parkingsContainer.registerSingleton(ModuleContainerToken_1.ModuleContainerToken.CalculateAverageOccupancyTask, CalculateAverageOccupancyTask_1.CalculateAverageOccupancyTask);
|
|
80
84
|
//# sourceMappingURL=Di.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,wEAAsE;AACtE,sGAAoG;AACpG,4FAA0F;AAC1F,oGAAkG;AAClG,oEAAkE;AAClE,iHAA+G;AAC/G,yHAAuH;AACvH,yGAAuG;AACvG,yFAAuF;AACvF,uFAAqF;AACrF,uGAAqG;AACrG,2FAAyF;AACzF,2EAAyE;AACzE,iFAA+E;AAC/E,0GAAwG;AACxG,oGAAkG;AAClG,gFAA8E;AAC9E,sEAAoE;AACpE,kGAAgG;AAChG,wGAAsG;AAOtG,mEAA2E;AAC3E,qEAA0F;AAC1F,iEAAiG;AACjG,iEAA8D;AAC9D,6FAA2F;AAE3F,wBAAwB;AACxB,MAAM,iBAAiB,GAAwB,+BAA0B,CAAC,oBAAoB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,wEAAsE;AACtE,sGAAoG;AACpG,4FAA0F;AAC1F,oGAAkG;AAClG,oEAAkE;AAClE,iHAA+G;AAC/G,yHAAuH;AACvH,yGAAuG;AACvG,2FAAyF;AACzF,yFAAuF;AACvF,uFAAqF;AACrF,uGAAqG;AACrG,2FAAyF;AACzF,2EAAyE;AACzE,iFAA+E;AAC/E,0GAAwG;AACxG,oGAAkG;AAClG,kGAAgG;AAChG,gFAA8E;AAC9E,sEAAoE;AACpE,kGAAgG;AAChG,wGAAsG;AAOtG,mEAA2E;AAC3E,qEAA0F;AAC1F,iEAAiG;AACjG,iEAA8D;AAC9D,6FAA2F;AAE3F,wBAAwB;AACxB,MAAM,iBAAiB,GAAwB,+BAA0B,CAAC,oBAAoB,EAAE,CAAC;AAoEnE,8CAAiB;AAnE/C,MAAM,MAAM,GAAG,+BAA0B,CAAC,OAAO,CAAiB,oBAAc,CAAC,MAAM,CAAC,CAAC;AACzF,MAAM,wBAAwB,GAAG,IAAI,yDAA2B,CAAC,MAAM,CAAC,CAAC;AACzE,YAAY;AAEZ,oBAAoB;AACpB,iBAAiB,CAAC,QAAQ,CAAsC,2CAAoB,CAAC,mCAAmC,EAAE;IACtH,UAAU,EAAE,IAAA,iCAAsB,EAAsC,GAAG,EAAE,CACzE,wBAAwB,CAAC,aAAa,CAAC,wBAAwB,CAAC,CACnE;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAsC,2CAAoB,CAAC,mCAAmC,EAAE;IACtH,UAAU,EAAE,IAAA,iCAAsB,EAAsC,GAAG,EAAE,CACzE,wBAAwB,CAAC,aAAa,CAAC,wBAAwB,CAAC,CACnE;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAiC,2CAAoB,CAAC,4BAA4B,EAAE;IAC1G,UAAU,EAAE,IAAA,iCAAsB,EAAiC,GAAG,EAAE,CACpE,wBAAwB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAC5D;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAiC,2CAAoB,CAAC,4BAA4B,EAAE;IAC1G,UAAU,EAAE,IAAA,iCAAsB,EAAiC,GAAG,EAAE,CACpE,wBAAwB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAC5D;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAsC,2CAAoB,CAAC,gCAAgC,EAAE;IACnH,UAAU,EAAE,IAAA,iCAAsB,EAAsC,GAAG,EAAE,CACzE,wBAAwB,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAC3D;CACJ,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC;AACxG,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AACpH,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,oCAAoC,EAAE,2EAAoC,CAAC,CAAC;AAC5H,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,4BAA4B,EAAE,2DAA4B,CAAC,CAAC;AAC5G,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AAC7H,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,aAAa,EAAE,6BAAa,CAAC,CAAC;AACvF,YAAY;AAEZ,wBAAwB;AACxB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AACpH,YAAY;AAEZ,sBAAsB;AACtB,iBAAiB;KACZ,QAAQ,CAAC,2CAAoB,CAAC,kBAAkB,EAAE,uCAAkB,CAAC;KACrE,QAAQ,CAAC,2CAAoB,CAAC,2BAA2B,EAAE,yDAA2B,CAAC;KACvF,QAAQ,CAAC,2CAAoB,CAAC,0BAA0B,EAAE,uDAA0B,CAAC;KACrF,QAAQ,CAAC,2CAAoB,CAAC,wBAAwB,EAAE,mDAAwB,CAAC;KACjF,QAAQ,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC;KACjG,QAAQ,CAAC,2CAAoB,CAAC,yBAAyB,EAAE,qDAAyB,CAAC;KACnF,QAAQ,CAAC,2CAAoB,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC;AAC3F,iBAAiB,CAAC,QAAQ,CAAqB,2CAAoB,CAAC,UAAU,EAAE,uCAAkB,CAAC,CAAC;AACpG,YAAY;AAEZ,iBAAiB;AACjB,iBAAiB,CAAC,QAAQ,CAAC,2CAAoB,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;AACpF,YAAY;AAEZ,eAAe;AACf,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,oBAAoB,EAAE,2CAAoB,CAAC,CAAC;AACrG,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,8BAA8B,EAAE,+DAA8B,CAAC,CAAC;AACzH,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,6BAA6B,EAAE,6DAA6B,CAAC,CAAC;AACvH,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;AAC7H,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,eAAe,EAAE,iCAAe,CAAC,CAAC;AAC3F,iBAAiB,CAAC,iBAAiB,CAAC,2CAAoB,CAAC,6BAA6B,EAAE,6DAA6B,CAAC,CAAC"}
|
|
@@ -7,6 +7,7 @@ declare const ModuleContainerToken: {
|
|
|
7
7
|
ParkingTariffsRepository: symbol;
|
|
8
8
|
ParkingsBusinessErrorsRepository: symbol;
|
|
9
9
|
ParkingMachinesRepository: symbol;
|
|
10
|
+
AverageOccupancyRepository: symbol;
|
|
10
11
|
TskParkingMachinesDataSource: symbol;
|
|
11
12
|
TskParkingMachinesTransformation: symbol;
|
|
12
13
|
TskParkingSectionLevel251DataSource: symbol;
|
|
@@ -25,5 +26,6 @@ declare const ModuleContainerToken: {
|
|
|
25
26
|
UpdateSmart4CityMeasurementsTask: symbol;
|
|
26
27
|
OsmDataSource: symbol;
|
|
27
28
|
SaveOsmDataTask: symbol;
|
|
29
|
+
CalculateAverageOccupancyTask: symbol;
|
|
28
30
|
};
|
|
29
31
|
export { ModuleContainerToken };
|
|
@@ -10,6 +10,7 @@ const ModuleContainerToken = {
|
|
|
10
10
|
ParkingTariffsRepository: Symbol(),
|
|
11
11
|
ParkingsBusinessErrorsRepository: Symbol(),
|
|
12
12
|
ParkingMachinesRepository: Symbol(),
|
|
13
|
+
AverageOccupancyRepository: Symbol(),
|
|
13
14
|
TskParkingMachinesDataSource: Symbol(),
|
|
14
15
|
TskParkingMachinesTransformation: Symbol(),
|
|
15
16
|
TskParkingSectionLevel251DataSource: Symbol(),
|
|
@@ -34,6 +35,9 @@ const ModuleContainerToken = {
|
|
|
34
35
|
OsmDataSource: Symbol(),
|
|
35
36
|
SaveOsmDataTask: Symbol(),
|
|
36
37
|
//#endregion
|
|
38
|
+
//#region Average occupancy
|
|
39
|
+
CalculateAverageOccupancyTask: Symbol(),
|
|
40
|
+
//#endregion
|
|
37
41
|
};
|
|
38
42
|
exports.ModuleContainerToken = ModuleContainerToken;
|
|
39
43
|
//# sourceMappingURL=ModuleContainerToken.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,gBAAgB,EAAE,MAAM,EAAE;IAC1B,UAAU,EAAE,MAAM,EAAE;IACpB,kBAAkB,EAAE,MAAM,EAAE;IAC5B,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,wBAAwB,EAAE,MAAM,EAAE;IAClC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,yBAAyB,EAAE,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"ModuleContainerToken.js","sourceRoot":"","sources":["../../../src/integration-engine/ioc/ModuleContainerToken.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB,GAAG;IACzB,gBAAgB,EAAE,MAAM,EAAE;IAC1B,UAAU,EAAE,MAAM,EAAE;IACpB,kBAAkB,EAAE,MAAM,EAAE;IAC5B,2BAA2B,EAAE,MAAM,EAAE;IACrC,0BAA0B,EAAE,MAAM,EAAE;IACpC,wBAAwB,EAAE,MAAM,EAAE;IAClC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,yBAAyB,EAAE,MAAM,EAAE;IACnC,0BAA0B,EAAE,MAAM,EAAE;IAEpC,4BAA4B,EAAE,MAAM,EAAE;IACtC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,mCAAmC,EAAE,MAAM,EAAE;IAC7C,4BAA4B,EAAE,MAAM,EAAE;IACtC,+BAA+B,EAAE,MAAM,EAAE;IAEzC,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,gCAAgC,EAAE,MAAM,EAAE;IAE1C,mBAAmB;IACnB,0BAA0B,EAAE,MAAM,EAAE;IACpC,oBAAoB,EAAE,MAAM,EAAE;IAC9B,YAAY;IAEZ,oBAAoB;IACpB,gCAAgC,EAAE,MAAM,EAAE;IAC1C,oCAAoC,EAAE,MAAM,EAAE;IAC9C,4BAA4B,EAAE,MAAM,EAAE;IACtC,8BAA8B,EAAE,MAAM,EAAE;IACxC,6BAA6B,EAAE,MAAM,EAAE;IACvC,gCAAgC,EAAE,MAAM,EAAE;IAC1C,YAAY;IAEZ,aAAa;IACb,aAAa,EAAE,MAAM,EAAE;IACvB,eAAe,EAAE,MAAM,EAAE;IACzB,YAAY;IAEZ,2BAA2B;IAC3B,6BAA6B,EAAE,MAAM,EAAE;IACvC,YAAY;CACf,CAAC;AACO,oDAAoB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine/models";
|
|
2
|
+
export declare class AverageOccupancyRepository extends PostgresModel implements IModel {
|
|
3
|
+
constructor();
|
|
4
|
+
/**
|
|
5
|
+
* Trigger calculate_average_occupancy function to calculate occupancy delta
|
|
6
|
+
* since last update and add it to average in `parkings_average_occupancy`.
|
|
7
|
+
*/
|
|
8
|
+
calculateAverageOccupancy(): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
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.AverageOccupancyRepository = void 0;
|
|
13
|
+
const _sch_1 = require("../../schema-definitions");
|
|
14
|
+
const ParkingAverageOccupancyModel_1 = require("../../schema-definitions/models/ParkingAverageOccupancyModel");
|
|
15
|
+
const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
16
|
+
const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
|
|
17
|
+
const JSONSchemaValidator_1 = require("@golemio/validator/dist/JSONSchemaValidator");
|
|
18
|
+
class AverageOccupancyRepository extends models_1.PostgresModel {
|
|
19
|
+
constructor() {
|
|
20
|
+
super("AverageOccupancyRepository", {
|
|
21
|
+
pgTableName: ParkingAverageOccupancyModel_1.ParkingAverageOccupancyModel.tableName,
|
|
22
|
+
pgSchema: _sch_1.Parkings.pgSchema,
|
|
23
|
+
outputSequelizeAttributes: ParkingAverageOccupancyModel_1.ParkingAverageOccupancyModel.attributeModel,
|
|
24
|
+
savingType: "insertOnly",
|
|
25
|
+
}, new JSONSchemaValidator_1.JSONSchemaValidator("AverageOccupancyRepository", {}));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Trigger calculate_average_occupancy function to calculate occupancy delta
|
|
29
|
+
* since last update and add it to average in `parkings_average_occupancy`.
|
|
30
|
+
*/
|
|
31
|
+
calculateAverageOccupancy() {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
yield this.sequelizeModel.sequelize.query(`CALL ${_sch_1.Parkings.pgSchema}.calculate_average_occupancy()`, {
|
|
34
|
+
plain: true,
|
|
35
|
+
type: sequelize_1.QueryTypes.SELECT,
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.AverageOccupancyRepository = AverageOccupancyRepository;
|
|
41
|
+
//# sourceMappingURL=AverageOccupancyRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AverageOccupancyRepository.js","sourceRoot":"","sources":["../../../src/integration-engine/repositories/AverageOccupancyRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAgC;AAChC,+GAAwF;AACxF,yEAAqF;AACrF,mEAAiE;AACjE,qFAAkF;AAElF,MAAa,0BAA2B,SAAQ,sBAAa;IACzD;QACI,KAAK,CACD,4BAA4B,EAC5B;YACI,WAAW,EAAE,2DAA4B,CAAC,SAAS;YACnD,QAAQ,EAAE,eAAQ,CAAC,QAAQ;YAC3B,yBAAyB,EAAE,2DAA4B,CAAC,cAAc;YACtE,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,yCAAmB,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAC5D,CAAC;IACN,CAAC;IAED;;;OAGG;IACU,yBAAyB;;YAClC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAU,CAAC,KAAK,CAAC,QAAQ,eAAQ,CAAC,QAAQ,gCAAgC,EAAE;gBAClG,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,sBAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;QACP,CAAC;KAAA;CACJ;AAxBD,gEAwBC"}
|
|
@@ -19,6 +19,7 @@ class NewParkingsWorker extends integration_engine_1.AbstractWorker {
|
|
|
19
19
|
this.registerTask(Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.GenerateSmart4CityTaskListTask));
|
|
20
20
|
this.registerTask(Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.UpdateSmart4CityLocationsTask));
|
|
21
21
|
this.registerTask(Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.UpdateSmart4CityMeasurementsTask));
|
|
22
|
+
this.registerTask(Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.CalculateAverageOccupancyTask));
|
|
22
23
|
this.registerTask(new SaveParkingZonesPrague_1.SaveParkingZonesPrague(this.getQueuePrefix()));
|
|
23
24
|
this.registerTask(Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.SaveOsmDataTask));
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewParkingsWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/NewParkingsWorker.ts"],"names":[],"mappings":";;;AAAA,kCAA+C;AAC/C,sEAAoE;AACpE,8EAAuE;AAEvE,2CAAuD;AACvD,2EAAwE;AAExE,MAAa,iBAAkB,SAAQ,mCAAc;IAGjD;QACI,KAAK,EAAE,CAAC;QAHI,SAAI,GAAG,oCAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"NewParkingsWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/NewParkingsWorker.ts"],"names":[],"mappings":";;;AAAA,kCAA+C;AAC/C,sEAAoE;AACpE,8EAAuE;AAEvE,2CAAuD;AACvD,2EAAwE;AAExE,MAAa,iBAAkB,SAAQ,mCAAc;IAGjD;QACI,KAAK,EAAE,CAAC;QAHI,SAAI,GAAG,oCAAwB,CAAC;QAezC,iBAAY,GAAG,CAAC,IAAW,EAAQ,EAAE;YACxC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC,CAAC;QAbE,iBAAiB;QACjB,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC3G,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,YAAY,CAAC,IAAI,+CAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,sBAAiB,CAAC,OAAO,CAAQ,2CAAoB,CAAC,eAAe,CAAC,CAAC,CAAC;IAC9F,CAAC;CAMJ;AApBD,8CAoBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Smart4CityTaskTypeSchema.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Smart4CityTaskTypeSchema.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/schemas/Smart4CityTaskTypeSchema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAAmE;AAMnE,MAAa,kCAAkC;CAG9C;AAHD,gFAGC;AADG;IADC,IAAA,wBAAM,EAAC,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;;gEACxB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AverageOccupancyRepository } from "../../repositories/AverageOccupancyRepository";
|
|
2
|
+
import { AbstractEmptyTask } from "@golemio/core/dist/integration-engine";
|
|
3
|
+
export declare class CalculateAverageOccupancyTask extends AbstractEmptyTask {
|
|
4
|
+
private averageOccupancyRepository;
|
|
5
|
+
readonly queueName = "calculateAverageOccupancy";
|
|
6
|
+
readonly queueTtl: number;
|
|
7
|
+
constructor(averageOccupancyRepository: AverageOccupancyRepository);
|
|
8
|
+
execute(): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.CalculateAverageOccupancyTask = void 0;
|
|
25
|
+
const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
|
|
26
|
+
const AverageOccupancyRepository_1 = require("../../repositories/AverageOccupancyRepository");
|
|
27
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
28
|
+
const integration_engine_1 = require("@golemio/core/dist/integration-engine");
|
|
29
|
+
const constants_1 = require("../constants");
|
|
30
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
31
|
+
let CalculateAverageOccupancyTask = exports.CalculateAverageOccupancyTask = class CalculateAverageOccupancyTask extends integration_engine_1.AbstractEmptyTask {
|
|
32
|
+
constructor(averageOccupancyRepository) {
|
|
33
|
+
super(constants_1.NEW_PARKINGS_WORKER_NAME);
|
|
34
|
+
this.averageOccupancyRepository = averageOccupancyRepository;
|
|
35
|
+
this.queueName = "calculateAverageOccupancy";
|
|
36
|
+
this.queueTtl = 60 * 60 * 1000;
|
|
37
|
+
}
|
|
38
|
+
execute() {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
try {
|
|
41
|
+
yield this.averageOccupancyRepository.calculateAverageOccupancy();
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
if (err instanceof golemio_errors_1.AbstractGolemioError) {
|
|
45
|
+
throw err;
|
|
46
|
+
}
|
|
47
|
+
throw new golemio_errors_1.GeneralError("Error while calculating average occupancy", this.constructor.name, err);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.CalculateAverageOccupancyTask = CalculateAverageOccupancyTask = __decorate([
|
|
53
|
+
(0, tsyringe_1.injectable)(),
|
|
54
|
+
__param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.AverageOccupancyRepository)),
|
|
55
|
+
__metadata("design:paramtypes", [AverageOccupancyRepository_1.AverageOccupancyRepository])
|
|
56
|
+
], CalculateAverageOccupancyTask);
|
|
57
|
+
//# sourceMappingURL=CalculateAverageOccupancyTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalculateAverageOccupancyTask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/tasks/CalculateAverageOccupancyTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAAoE;AACpE,8FAAyF;AACzF,iEAAwE;AACxE,8EAA0E;AAC1E,4CAAiE;AACjE,6EAA8F;AAGvF,IAAM,6BAA6B,2CAAnC,MAAM,6BAA8B,SAAQ,sCAAiB;IAIhE,YAC6D,0BAA8D;QAEvH,KAAK,CAAC,oCAAwB,CAAC,CAAC;QAFiC,+BAA0B,GAA1B,0BAA0B,CAA4B;QAJ3G,cAAS,GAAG,2BAA2B,CAAC;QACxC,aAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAM1C,CAAC;IAEY,OAAO;;YAChB,IAAI;gBACA,MAAM,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,EAAE,CAAC;aACrE;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,GAAG,YAAY,qCAAoB,EAAE;oBACrC,MAAM,GAAG,CAAC;iBACb;gBAED,MAAM,IAAI,6BAAY,CAAC,2CAA2C,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aACnG;QACL,CAAC;KAAA;CACJ,CAAA;wCArBY,6BAA6B;IADzC,IAAA,qBAAU,GAAE;IAMJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,0BAA0B,CAAC,CAAA;qCAAqC,uDAA0B;GALlH,6BAA6B,CAqBzC"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
/// <reference types="express" />
|
|
1
2
|
import { NextFunction, Request, Response } from "@golemio/core/dist/shared/express";
|
|
2
3
|
export declare class V3ParkingController {
|
|
3
|
-
private
|
|
4
|
+
private cachedParkingSourcesRepository;
|
|
5
|
+
private parkingRepository;
|
|
6
|
+
private averageOccupancyRepository;
|
|
4
7
|
private transformation;
|
|
5
8
|
constructor();
|
|
6
9
|
getAll: (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
7
10
|
getOne: (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
11
|
+
getAverageOccupancy: (req: Request, res: Response, next: NextFunction) => Promise<Response<any, Record<string, any>> | undefined>;
|
|
8
12
|
private parseParams;
|
|
9
13
|
}
|
|
@@ -19,7 +19,7 @@ class V3ParkingController {
|
|
|
19
19
|
this.getAll = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
|
|
20
20
|
try {
|
|
21
21
|
const params = this.parseParams(req);
|
|
22
|
-
const result = yield this.
|
|
22
|
+
const result = yield this.parkingRepository.GetAll(params);
|
|
23
23
|
const transformedResult = this.transformation.transformToFeatureCollection(result);
|
|
24
24
|
res.json(transformedResult);
|
|
25
25
|
}
|
|
@@ -30,7 +30,7 @@ class V3ParkingController {
|
|
|
30
30
|
this.getOne = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
|
|
31
31
|
try {
|
|
32
32
|
const id = req.params.id;
|
|
33
|
-
const result = yield this.
|
|
33
|
+
const result = yield this.parkingRepository.GetOne(id);
|
|
34
34
|
if (result === null) {
|
|
35
35
|
throw new golemio_errors_1.GeneralError("not_found", "V3ParkingController", undefined, 404);
|
|
36
36
|
}
|
|
@@ -43,7 +43,23 @@ class V3ParkingController {
|
|
|
43
43
|
next(err);
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
|
-
this.
|
|
46
|
+
this.getAverageOccupancy = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
try {
|
|
48
|
+
const id = req.params.id;
|
|
49
|
+
const sources = yield this.cachedParkingSourcesRepository.getV3Sources();
|
|
50
|
+
const result = yield this.averageOccupancyRepository.GetOccupancy(id, sources);
|
|
51
|
+
if (!result) {
|
|
52
|
+
throw new golemio_errors_1.GeneralError("not_found", this.constructor.name, undefined, 404);
|
|
53
|
+
}
|
|
54
|
+
return res.json(this.transformation.transformAverageOccupancyArray(result));
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
next(err);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
this.parkingRepository = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingRepository);
|
|
61
|
+
this.cachedParkingSourcesRepository = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.CachedParkingSourcesRepository);
|
|
62
|
+
this.averageOccupancyRepository = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingAverageOccupancyRepository);
|
|
47
63
|
this.transformation = new ParkingDtoTransformation_1.ParkingDtoTransformation();
|
|
48
64
|
}
|
|
49
65
|
parseParams(req) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"V3ParkingController.js","sourceRoot":"","sources":["../../../../src/output-gateway/controllers/v3/V3ParkingController.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"V3ParkingController.js","sourceRoot":"","sources":["../../../../src/output-gateway/controllers/v3/V3ParkingController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="express" />
|
|
2
|
+
import { NextFunction, Request, Response } from "@golemio/core/dist/shared/express";
|
|
3
|
+
export declare class V3ParkingMeasurementsController {
|
|
4
|
+
private cachedParkingSourcesRepository;
|
|
5
|
+
private latestMeasurementRepository;
|
|
6
|
+
private transformation;
|
|
7
|
+
constructor();
|
|
8
|
+
getAllLatest: (req: Request, res: Response, next: NextFunction) => Promise<Response<any, Record<string, any>> | undefined>;
|
|
9
|
+
private getAllLatestParams;
|
|
10
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
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.V3ParkingMeasurementsController = void 0;
|
|
13
|
+
const Di_1 = require("../../ioc/Di");
|
|
14
|
+
const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
|
|
15
|
+
const ParkingMeasurementDtoTransformation_1 = require("../../transformations/v3/ParkingMeasurementDtoTransformation");
|
|
16
|
+
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
17
|
+
class V3ParkingMeasurementsController {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.getAllLatest = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
try {
|
|
21
|
+
const params = yield this.getAllLatestParams(req);
|
|
22
|
+
const result = yield this.latestMeasurementRepository.GetAll(params);
|
|
23
|
+
return res.json(this.transformation.transformArray(result));
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
next(err);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
this.cachedParkingSourcesRepository = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.CachedParkingSourcesRepository);
|
|
30
|
+
this.latestMeasurementRepository = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.ParkingLatestMeasurementRepository);
|
|
31
|
+
this.transformation = new ParkingMeasurementDtoTransformation_1.ParkingMeasurementDtoTransformation();
|
|
32
|
+
}
|
|
33
|
+
getAllLatestParams(req) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
try {
|
|
36
|
+
return {
|
|
37
|
+
primarySource: req.query.primarySource
|
|
38
|
+
? req.query.primarySource instanceof Array
|
|
39
|
+
? req.query.primarySource
|
|
40
|
+
: [req.query.primarySource]
|
|
41
|
+
: yield this.cachedParkingSourcesRepository.getV3Sources(),
|
|
42
|
+
primarySourceId: req.query.primarySourceId
|
|
43
|
+
? req.query.primarySourceId instanceof Array
|
|
44
|
+
? req.query.primarySourceId
|
|
45
|
+
: [req.query.primarySourceId]
|
|
46
|
+
: undefined,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
throw new golemio_errors_1.GeneralError("Param parsing error", this.constructor.name, err, 500);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.V3ParkingMeasurementsController = V3ParkingMeasurementsController;
|
|
56
|
+
//# sourceMappingURL=V3ParkingMeasurementsController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"V3ParkingMeasurementsController.js","sourceRoot":"","sources":["../../../../src/output-gateway/controllers/v3/V3ParkingMeasurementsController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,qCAA+C;AAC/C,yEAAoE;AACpE,sHAAiH;AAEjH,6EAAwE;AAExE,MAAa,+BAA+B;IAKxC;QAUO,iBAAY,GAAG,CAAO,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YAC5E,IAAI;gBACA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrE,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;aAC/D;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAC;aACb;QACL,CAAC,CAAA,CAAC;QAjBE,IAAI,CAAC,8BAA8B,GAAG,sBAAiB,CAAC,OAAO,CAC3D,2CAAoB,CAAC,8BAA8B,CACtD,CAAC;QACF,IAAI,CAAC,2BAA2B,GAAG,sBAAiB,CAAC,OAAO,CACxD,2CAAoB,CAAC,kCAAkC,CAC1D,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,yEAAmC,EAAE,CAAC;IACpE,CAAC;IAYa,kBAAkB,CAAC,GAAY;;YACzC,IAAI;gBACA,OAAO;oBACH,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,aAAa;wBAClC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,YAAY,KAAK;4BACtC,CAAC,CAAE,GAAG,CAAC,KAAK,CAAC,aAA0B;4BACvC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAuB,CAAC;wBACzC,CAAC,CAAC,MAAM,IAAI,CAAC,8BAA8B,CAAC,YAAY,EAAE;oBAC9D,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe;wBACtC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,YAAY,KAAK;4BACxC,CAAC,CAAE,GAAG,CAAC,KAAK,CAAC,eAA4B;4BACzC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,eAAyB,CAAC;wBAC3C,CAAC,CAAC,SAAS;iBAClB,CAAC;aACL;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,qBAAqB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aAClF;QACL,CAAC;KAAA;CACJ;AA3CD,0EA2CC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CachedParkingSourcesRepository } from "../../helpers/data-access/CachedParkingSourcesRepository";
|
|
2
|
+
import { IParkingAverageOccupancy } from "../../schema-definitions/models/interfaces/IParkingAverageOccupancy";
|
|
3
|
+
import { SequelizeModel } from "@golemio/core/dist/output-gateway/models/SequelizeModel";
|
|
4
|
+
export declare class ParkingAverageOccupancyRepository extends SequelizeModel {
|
|
5
|
+
private cachedParkingSourcesRepository;
|
|
6
|
+
constructor(cachedParkingSourcesRepository: CachedParkingSourcesRepository);
|
|
7
|
+
GetOccupancy(id: string, sources: string[]): Promise<Array<Omit<IParkingAverageOccupancy, "hour"> & {
|
|
8
|
+
hour: string;
|
|
9
|
+
}> | null>;
|
|
10
|
+
GetAll(): never;
|
|
11
|
+
GetOne(): never;
|
|
12
|
+
}
|