misc: adapt to w.c.s. API changes (#21367)

This commit is contained in:
Frédéric Péters 2018-01-23 14:22:58 +01:00
parent 93f267939f
commit 1a2b162de2
2 changed files with 8 additions and 3 deletions

View File

@ -104,7 +104,7 @@ class ContactDetailFragmentView(TemplateView):
user_id = self.kwargs.get('slug').split('-')[-1]
user_details = get_wcs_data('api/users/%s/' % user_id)
context.update(user_details)
context['forms'] = get_wcs_data('api/users/%s/forms' % user_id)
context['forms'] = get_wcs_data('api/users/%s/forms' % user_id).get('data') or []
context['user_id'] = user_id
if 'source_pk' in self.request.GET:

View File

@ -68,6 +68,8 @@ def get_wcs_json(wcs_url, path, wcs_site):
signed_url = sign_url(url + '?orig=%s' % wcs_site.get('orig'), wcs_site.get('secret'))
response_json = requests.get(signed_url, headers={'accept': 'application/json'},
timeout=10).json()
if not isinstance(json_response, dict):
json_response = {'data': json_response}
cache.set(url, response_json)
return response_json
@ -101,7 +103,7 @@ def get_wcs_formdef_details(formdef_reference):
wcs_key, form_slug = formdef_reference.split(':')
wcs_site = get_wcs_services()[wcs_key]
forms_response_json = get_wcs_json(wcs_site.get('url'), 'json', wcs_site)
for form in forms_response_json:
for form in forms_response_json.get('data') or []:
slug = form.get('slug')
if slug == form_slug:
return form
@ -161,7 +163,10 @@ def get_wcs_data(endpoint, params=None):
response = requests.get(url)
response.raise_for_status()
return response.json()
json_response = response.json()
if not isinstance(json_response, dict):
json_response = {'data': json_response}
return json_response
def response_for_json(request, data):
json_str = json.dumps(data)