|
| 1 | +--------------------------------------------------------------------------- |
| 2 | +-- Listing |
| 3 | +-- |
| 4 | + |
| 5 | +-- List current database |
| 6 | +select current_database(); |
| 7 | + |
| 8 | +-- connect to the DB |
| 9 | +\c signalk |
| 10 | + |
| 11 | +-- output display format |
| 12 | +\x on |
| 13 | + |
| 14 | +\echo 'Validate Stats operation' |
| 15 | +-- Assign vessel_id var |
| 16 | +SELECT v.vessel_id as "vessel_id_kapla" FROM auth.vessels v WHERE v.owner_email = 'demo+kapla@openplotter.cloud' \gset |
| 17 | +SELECT v.vessel_id as "vessel_id_aava" FROM auth.vessels v WHERE v.owner_email = 'demo+aava@openplotter.cloud' \gset |
| 18 | + |
| 19 | +-- user_role |
| 20 | +SET ROLE user_role; |
| 21 | +\echo 'ROLE user_role current_setting' |
| 22 | + |
| 23 | +SELECT set_config('vessel.id', :'vessel_id_kapla', false) IS NOT NULL as vessel_id; |
| 24 | + |
| 25 | +-- Stats logbook and moorages for user |
| 26 | +\echo 'Stats logbook and moorages for user kapla' |
| 27 | +--SELECT api.stats_fn(); |
| 28 | +WITH tbl as (SELECT api.stats_fn() as stats) |
| 29 | +SELECT tbl.stats->'stats_logs'->>'name' = 'kapla' AS boat_name, |
| 30 | + (tbl.stats->'stats_logs'->>'count')::int = 1 AS logs_count, |
| 31 | + (tbl.stats->'stats_logs'->>'max_speed')::numeric = 6.5 AS max_speed, |
| 32 | + (tbl.stats->'stats_moorages'->>'home_ports')::int = 1 AS home_ports, |
| 33 | + (tbl.stats->'stats_moorages'->>'unique_moorages')::numeric = 5 AS unique_moorages, |
| 34 | + (tbl.stats->'moorages_top_countries') = '["fi"]' AS moorages_top_countries |
| 35 | + FROM tbl; |
| 36 | + |
| 37 | +SELECT set_config('vessel.id', :'vessel_id_aava', false) IS NOT NULL as vessel_id; |
| 38 | + |
| 39 | +-- Stats logbook and moorages for user |
| 40 | +\echo 'Stats logbook and moorages for user aava' |
| 41 | +--SELECT api.stats_fn(); |
| 42 | +WITH tbl as (SELECT api.stats_fn() as stats) |
| 43 | +SELECT tbl.stats->'stats_logs'->>'name' = 'aava' AS boat_name, |
| 44 | + (tbl.stats->'stats_logs'->>'count')::int = 2 AS logs_count, |
| 45 | + (tbl.stats->'stats_logs'->>'max_speed')::numeric = 9.5 AS max_speed, |
| 46 | + (tbl.stats->'stats_moorages'->>'home_ports')::int = 1 AS home_ports, |
| 47 | + (tbl.stats->'stats_moorages'->>'unique_moorages')::numeric = 4 AS unique_moorages, |
| 48 | + (tbl.stats->'moorages_top_countries') = '["ee"]' AS moorages_top_countries |
| 49 | + FROM tbl; |
| 50 | + |
0 commit comments