diff --git a/initdb/02_3_3_signalk_public_functions_py.sql b/initdb/02_3_3_signalk_public_functions_py.sql index 5d78078..d7d4d65 100644 --- a/initdb/02_3_3_signalk_public_functions_py.sql +++ b/initdb/02_3_3_signalk_public_functions_py.sql @@ -345,10 +345,10 @@ $urlencode_py$ LANGUAGE plpython3u IMMUTABLE STRICT; -- python -- https://ipapi.co/ DROP FUNCTION IF EXISTS reverse_geoip_py_fn; -CREATE OR REPLACE FUNCTION reverse_geoip_py_fn(IN _ip TEXT) RETURNS void +CREATE OR REPLACE FUNCTION reverse_geoip_py_fn(IN _ip TEXT) RETURNS JSONB AS $reverse_geoip_py$ """ - TODO + Return ipapi.co ip details """ import requests import json @@ -358,13 +358,15 @@ AS $reverse_geoip_py$ r = requests.get(url) #print(r.text) # Return something boolean? - #plpy.notice('Sent successfully to [{}] [{}]'.format(r.text, r.status_code)) + #plpy.notice('IP [{}] [{}]'.format(_ip, r.status_code)) if r.status_code == 200: - plpy.notice('Sent successfully to [{}] [{}]'.format(r.text, r.status_code)) + #plpy.notice('Got [{}] [{}]'.format(r.text, r.status_code)) + return r.text; else: - plpy.error('Failed to send') - return None -$reverse_geoip_py$ TRANSFORM FOR TYPE jsonb LANGUAGE plpython3u; + plpy.error('Failed to get ip details') + return '{}' +$reverse_geoip_py$ LANGUAGE plpython3u; + -- Description COMMENT ON FUNCTION public.reverse_geoip_py_fn @@ -403,6 +405,8 @@ AS $geojson_py$ #plpy.notice(feature) if (feature['geometry']['type'] != geometry_type): output.append(feature) + #elif (feature['properties']['id']): TODO + # output.append(feature) #else: # plpy.notice('ignoring') return json.dumps(output)