# Copyright The IETF Trust 2017, All Rights Reserved # -*- coding: utf-8 -*- from __future__ import unicode_literals from jwcrypto.jwk import JWK from django.conf import settings from django.http import HttpResponse from django.shortcuts import render from django.urls import reverse from tastypie.exceptions import BadRequest from tastypie.utils.mime import determine_format, build_content_type from tastypie.utils import is_valid_jsonp_callback_value import debug # pyflakes:ignore from ietf.api import Serializer, _api_list def top_level(request): available_resources = {} apitop = reverse('ietf.api.views.top_level') for name in sorted([ name for name, api in _api_list if len(api._registry) > 0 ]): available_resources[name] = { 'list_endpoint': '%s/%s/' % (apitop, name), } serializer = Serializer() desired_format = determine_format(request, serializer) options = {} if 'text/javascript' in desired_format: callback = request.GET.get('callback', 'callback') if not is_valid_jsonp_callback_value(callback): raise BadRequest('JSONP callback name is invalid.') options['callback'] = callback serialized = serializer.serialize(available_resources, desired_format, options) return HttpResponse(content=serialized, content_type=build_content_type(desired_format)) def api_help(request): key = JWK() # import just public part here, for display in info page key.import_from_pem(settings.API_PUBLIC_KEY_PEM) return render(request, "api/index.html", {'key': key, 'settings':settings, })