@golemio/bicycle-counters 1.0.13-dev.747365691 → 1.1.0-dev.777111446
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.
|
@@ -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', '20230214081147-v_bicycle_counters_new-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', '20230214081147-v_bicycle_counters_new-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_camea_bikecounters_data_month;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
CREATE OR REPLACE VIEW v_camea_bikecounters_data_month
|
|
2
|
+
AS SELECT d1.date_time,
|
|
3
|
+
d1.date_hour,
|
|
4
|
+
d1.locations_id,
|
|
5
|
+
d1.location_name,
|
|
6
|
+
d1.directions_id AS smer_1,
|
|
7
|
+
d2.directions_id AS smer_2,
|
|
8
|
+
d1.direction_name AS dir1_name,
|
|
9
|
+
d2.direction_name AS dir2_name,
|
|
10
|
+
d1.dir1det,
|
|
11
|
+
d2.dir2det
|
|
12
|
+
FROM ( SELECT to_timestamp((det.measured_from / 1000)::double precision) AS date_time,
|
|
13
|
+
date_trunc('hour'::text, to_timestamp((det.measured_from / 1000)::double precision)) AS date_hour,
|
|
14
|
+
det.locations_id,
|
|
15
|
+
loc.name AS location_name,
|
|
16
|
+
det.directions_id,
|
|
17
|
+
dir.name AS direction_name,
|
|
18
|
+
det.value AS dir1det
|
|
19
|
+
FROM bicyclecounters_detections det
|
|
20
|
+
LEFT JOIN bicyclecounters_locations loc ON det.locations_id::text = loc.id::text
|
|
21
|
+
LEFT JOIN bicyclecounters_directions dir ON det.directions_id::text = dir.id::text
|
|
22
|
+
WHERE (det.directions_id::text IN ( SELECT max(bicyclecounters_directions.id::text) AS max --vyberu smer 1
|
|
23
|
+
FROM bicyclecounters_directions
|
|
24
|
+
GROUP BY bicyclecounters_directions.locations_id)) AND det.measured_from::double precision >= (date_part('epoch'::text, now() - '1 mon'::interval) * 1000::double precision)) d1
|
|
25
|
+
FULL JOIN ( SELECT to_timestamp((det2.measured_from / 1000)::double precision) AS date_time,
|
|
26
|
+
det2.locations_id,
|
|
27
|
+
loc.name AS location_name,
|
|
28
|
+
det2.directions_id,
|
|
29
|
+
dir.name AS direction_name,
|
|
30
|
+
det2.value AS dir2det
|
|
31
|
+
FROM bicyclecounters_detections det2
|
|
32
|
+
LEFT JOIN bicyclecounters_locations loc ON det2.locations_id::text = loc.id::text
|
|
33
|
+
LEFT JOIN bicyclecounters_directions dir ON det2.directions_id::text = dir.id::text
|
|
34
|
+
WHERE (det2.directions_id::text IN ( SELECT min(bicyclecounters_directions.id::text) AS min -- vyberu smer 2
|
|
35
|
+
FROM bicyclecounters_directions
|
|
36
|
+
GROUP BY bicyclecounters_directions.locations_id)) AND det2.measured_from::double precision >= (date_part('epoch'::text, now() - '1 mon'::interval) * 1000::double precision)) d2 ON d1.date_time = d2.date_time AND d1.locations_id::text = d2.locations_id::text;
|
|
37
|
+
|