diff --git a/client/templates/20_public_functions.erb b/client/templates/20_public_functions.erb index 4c99bd6..dd28f47 100644 --- a/client/templates/20_public_functions.erb +++ b/client/templates/20_public_functions.erb @@ -8,11 +8,11 @@ CREATE OR REPLACE FUNCTION <%= GEOCODER_CLIENT_SCHEMA %>.<%= name %> (<%= params RETURNS <%= return_type %> AS $$ DECLARE ret <%= return_type %>; - user_config JSON; - geocoder_config JSON; + user_config json; + geocoder_config json; BEGIN - SELECT cartodb.CDB_Conf_GetConf('user_config') INTO user_config; - SELECT cartodb.CDB_Conf_GetConf('geocoder_config') INTO geocoder_config; + SELECT cartodb.CDB_Conf_GetConf('<%= user_config_key %>') INTO user_config; + SELECT cartodb.CDB_Conf_GetConf('<%= geocoder_config_key %>') INTO geocoder_config; SELECT <%= GEOCODER_CLIENT_SCHEMA %>._<%= name %>(session_user, user_config, geocoder_config, <%= params %>) INTO ret; RETURN ret; END; diff --git a/interface.yaml b/interface.yaml index 7e525a0..01b1cc0 100644 --- a/interface.yaml +++ b/interface.yaml @@ -1,33 +1,45 @@ --- - name: geocode_admin0_polygon return_type: Geometry + user_config_key: user_config + geocoder_config_key: geocoder_config params: - { name: country_name, type: text } - name: geocode_admin1_polygon return_type: Geometry + user_config_key: user_config + geocoder_config_key: geocoder_config params: - { name: admin1_name, type: text } - name: geocode_admin1_polygon return_type: Geometry + user_config_key: user_config + geocoder_config_key: geocoder_config params: - { name: admin1_name, type: text } - { name: country_name, type: text } - name: geocode_namedplace_point return_type: Geometry + user_config_key: user_config + geocoder_config_key: geocoder_config params: - { name: city_name, type: text} - name: geocode_namedplace_point return_type: Geometry + user_config_key: user_config + geocoder_config_key: geocoder_config params: - { name: city_name, type: text} - { name: country_name, type: text} - name: geocode_namedplace_point return_type: Geometry + user_config_key: user_config + geocoder_config_key: geocoder_config params: - { name: city_name, type: text} - { name: admin1_name, type: text} @@ -36,18 +48,24 @@ - name: geocode_postalcode_polygon return_type: Geometry + user_config_key: user_config + geocoder_config_key: geocoder_config params: - { name: postal_code, type: text} - { name: country_name, type: text} - name: geocode_postalcode_point return_type: Geometry + user_config_key: user_config + geocoder_config_key: geocoder_config params: - { name: postal_code, type: text} - { name: country_name, type: text} - name: geocode_ipaddress_point return_type: Geometry + user_config_key: user_config + geocoder_config_key: geocoder_config params: - { name: ip_address, type: text} diff --git a/sql-template-renderer b/sql-template-renderer index 7e11447..de5f9a7 100755 --- a/sql-template-renderer +++ b/sql-template-renderer @@ -27,6 +27,14 @@ class SqlTemplateRenderer @function_signature['return_type'] end + def user_config_key + @function_signature['user_config_key'] + end + + def geocoder_config_key + @function_signature['geocoder_config_key'] + end + def params @function_signature['params'].map { |p| p['name'] }.join(', ') end