Guest User

Untitled

a guest
Nov 18th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1.  
  2. import json
  3. import logging
  4.  
  5. from django.http import HttpResponse
  6.  
  7. logger = logging.getLogger(__name__)
  8.  
  9.  
  10. def _return_response(response_dict, status=200):
  11. response = json.dumps(response_dict)
  12. return HttpResponse(response, status=status, content_type="application/javascript")
  13.  
  14.  
  15. def _return_error_response(error):
  16. response_dict = {'error': error}
  17. return _return_response(response_dict, status=400)
  18.  
  19.  
  20. def api_request_decorator(request_type):
  21. assert request_type in ('GET', 'POST'), "Invalid request_type specified"
  22.  
  23. def inner_decorator(func):
  24. def inner(request, *args, **kwargs):
  25. try:
  26. if request.method != request_type:
  27. raise Exception('request type %s required for this method' % request_type)
  28. return _return_response(func(request, *args, **kwargs))
  29. except Exception, e:
  30. logger.error("Exception caught in API request: %s" % e)
  31. return _return_error_response(e.message)
  32. return inner
  33.  
  34. return inner_decorator
Add Comment
Please, Sign In to add comment