Revision fced411d snf-django-lib/snf_django/lib/api/__init__.py

b/snf-django-lib/snf_django/lib/api/__init__.py
218 218
@api_method(token_required=False, user_required=False)
219 219
def api_method_not_allowed(request):
220 220
    raise faults.BadRequest('Method not allowed')
221

  
222

  
223
def allow_jsonp(key='callback'):
224
    """
225
    Wrapper to enable jsonp responses.
226
    """
227
    def wrapper(func):
228
        def view_wrapper(request, *args, **kwargs):
229
            response = func(request, *args, **kwargs)
230
            if 'content-type' in response._headers and \
231
               response._headers['content-type'][1] == 'application/json':
232
                callback_name = request.GET.get(key, None)
233
                if callback_name:
234
                    response.content = "%s(%s)" % (callback_name,
235
                                                   response.content)
236
                    response._headers['content-type'] = ('Content-Type',
237
                                                         'text/javascript')
238
            return response
239
        return view_wrapper
240
    return wrapper

Also available in: Unified diff