docs: def json(func):
      "Decorator to make JSON views simpler"
  
      def wrapper(self, request, *args, **kwargs):
          try:
              response = {
                  "success": True,
                  "data": func(self, request, *args, **kwargs)
              }
          except GargoyleException, exc:
              response = {
                  "success": False,
                  "data": exc.message
              }
          except Switch.DoesNotExist:
              response = {
                  "success": False,
                  "data": "Switch cannot be found"
              }
          except ValidationError, e:
              response = {
                  "success": False,
                  "data": u','.join(map(unicode, e.messages)),
              }
          except Exception:
              if settings.DEBUG:
                  import traceback
                  traceback.print_exc()
              raise
          return HttpResponse(dumps(response), content_type="application/json")
      wrapper = wraps(func)(wrapper)
      return wrapper