diff schema/search_functions.sql @ 5130:a6e5bb85f0a7

Added new (optional) parameter "time" to search end point.
author Sascha Wilde <wilde@intevation.de>
date Fri, 27 Mar 2020 12:37:26 +0100
parents 7cbe5d32a614
children
line wrap: on
line diff
--- a/schema/search_functions.sql	Fri Mar 27 12:20:48 2020 +0100
+++ b/schema/search_functions.sql	Fri Mar 27 12:37:26 2020 +0100
@@ -4,7 +4,7 @@
 -- SPDX-License-Identifier: AGPL-3.0-or-later
 -- License-Filename: LICENSES/AGPL-3.0.txt
 
--- Copyright (C) 2018,2019 by via donau
+-- Copyright (C) 2018,2019,2020 by via donau
 --   – Österreichische Wasserstraßen-Gesellschaft mbH
 -- Software engineering by Intevation GmbH
 
@@ -42,7 +42,10 @@
 END;
 $$;
 
-CREATE OR REPLACE FUNCTION search_bottlenecks(search_string text) RETURNS jsonb
+CREATE OR REPLACE FUNCTION search_bottlenecks(
+  search_string text,
+  search_time timestamp with time zone)
+RETURNS jsonb
   LANGUAGE plpgsql STABLE PARALLEL SAFE
   AS $$
 DECLARE
@@ -57,7 +60,7 @@
             FROM waterway.bottlenecks
             WHERE (objnam ILIKE '%' || search_string || '%'
                    OR bottleneck_id ILIKE '%' || search_string || '%')
-              AND validity @> now()
+              AND validity @> search_time
           ORDER BY name) r;
   RETURN _result;
 END;
@@ -159,12 +162,16 @@
 END;
 $$;
 
-CREATE OR REPLACE FUNCTION search_most(search_string text) RETURNS jsonb
+CREATE OR REPLACE FUNCTION search_most(
+  search_string text,
+  search_time timestamp with time zone)
+RETURNS jsonb
   LANGUAGE plpgsql STABLE PARALLEL SAFE
   AS $$
 BEGIN
   RETURN search_hectometre(search_string)
-         || search_bottlenecks(search_string)
+         || search_bottlenecks(search_string,
+                               COALESCE(search_time, current_timestamp))
          || search_gauges(search_string)
          || search_sections(search_string)
          || search_stretches(search_string)