Skip to content

Commit 7a795d9

Browse files
authored
Merge pull request #34 from simranmattu14/discovery-metadata
updated elasticsearch.py:
2 parents e10aec7 + 3da2e83 commit 7a795d9

File tree

2 files changed

+21
-11
lines changed

2 files changed

+21
-11
lines changed

deploy/default/woudc-api-config.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ server:
77
mimetype: application/json; charset=UTF-8
88
encoding: utf-8
99
languages:
10-
- en-CA
11-
- fr-CA
10+
- en
11+
- fr
1212
# cors: true
1313
pretty_print: true
1414
limits:
@@ -21,7 +21,7 @@ server:
2121
ogc_schemas_location: ${WOUDC_API_OGC_SCHEMAS_LOCATION}
2222

2323
logging:
24-
level: ERROR
24+
level: DEBUG
2525
# logfile: /tmp/woudc-api.log
2626

2727
metadata:
@@ -101,6 +101,9 @@ resources:
101101
name: woudc_api.provider.elasticsearch.ElasticsearchWOUDCProvider
102102
data: ${WOUDC_API_ES_URL}/${WOUDC_API_ES_INDEX_PREFIX}.discovery_metadata
103103
id_field: identifier
104+
languages:
105+
- en
106+
- fr
104107
datasets:
105108
type: collection
106109
title: WOUDC Data Registry Datasets

woudc_api/provider/elasticsearch.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
from pygeoapi.provider.elasticsearch_ import ElasticsearchProvider
3737
from pygeoapi.provider.base import (ProviderConnectionError,
3838
ProviderQueryError)
39-
from flask import request
4039

4140
LOGGER = 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

Comments
 (0)