3636from pygeoapi .provider .elasticsearch_ import ElasticsearchProvider
3737from pygeoapi .provider .base import (ProviderConnectionError ,
3838 ProviderQueryError )
39- from flask import request
4039
4140LOGGER = logging .getLogger (__name__ )
4241
@@ -123,7 +122,11 @@ def query(self, offset=0, limit=10, resulttype='results',
123122 select_properties = [], skip_geometry = False , q = None ,
124123 filterq = None , ** kwargs ):
125124
126- language = request .args .get ('lang' , 'en' )
125+ language = kwargs .get ('language' )
126+ if language is not None :
127+ language = language .language
128+ else :
129+ language = 'en'
127130
128131 new_features = []
129132
@@ -136,11 +139,11 @@ def query(self, offset=0, limit=10, resulttype='results',
136139 skip_geometry = skip_geometry ,
137140 q = q )
138141
139- if self .index_name .split ( '.' )[ - 1 ] == ' discovery_metadata' :
142+ if self .index_name .endswith ( ' discovery_metadata') :
140143 LOGGER .debug ('Intercepting default ES response' )
141144 for feature in records ['features' ]:
142145 if feature ['id' ].endswith (language ):
143- feature ['id' ] = feature ['id' ].rsplit (f" _{ language } " )[0 ]
146+ feature ['id' ] = feature ['id' ].rsplit (f' _{ language } ' )[0 ]
144147 new_features .append (feature )
145148 records ['features' ] = new_features
146149
@@ -158,18 +161,22 @@ def get(self, identifier, **kwargs):
158161 :returns: dict of single GeoJSON feature
159162 """
160163
161- language = request .args .get ('lang' , 'en' )
164+ language = kwargs .get ('language' )
165+ if language is not None :
166+ language = language .language
167+ else :
168+ language = 'en'
162169
163- LOGGER .info (" Getting identifier: %s with language: %s" ,
170+ LOGGER .info (' Getting identifier: %s with language: %s' ,
164171 identifier , language )
165172
166- if self .index_name .split ( '.' )[ - 1 ] == ' discovery_metadata' :
173+ if self .index_name .endswith ( ' discovery_metadata') :
167174 identifier2 = f'{ identifier } _{ language } '
168175 else :
169176 identifier2 = identifier
170177
171178 dataset = super ().get (identifier2 , ** kwargs )
172179
173- dataset ['id' ] = dataset ['id' ].rsplit (f" _{ language } " )[0 ]
180+ dataset ['id' ] = dataset ['id' ].rsplit (f' _{ language } ' )[0 ]
174181
175182 return dataset
0 commit comments