Просмотр исходного кода

Move rest_api_server_error() to utilities.api

Jeremy Stretch 5 лет назад
Родитель
Сommit
2b359ce1c7
3 измененных файлов с 24 добавлено и 21 удалено
  1. 2 2
      netbox/netbox/middleware.py
  2. 20 0
      netbox/utilities/api.py
  3. 2 19
      netbox/utilities/views.py

+ 2 - 2
netbox/netbox/middleware.py

@@ -8,8 +8,8 @@ from django.http import Http404, HttpResponseRedirect
 from django.urls import reverse
 
 from extras.context_managers import change_logging
-from utilities.api import is_api_request
-from utilities.views import server_error, rest_api_server_error
+from utilities.api import is_api_request, rest_api_server_error
+from utilities.views import server_error
 
 
 class LoginRequiredMiddleware(object):

+ 20 - 0
netbox/utilities/api.py

@@ -1,4 +1,10 @@
+import platform
+import sys
+
+from django.conf import settings
+from django.http import JsonResponse
 from django.urls import reverse
+from rest_framework import status
 from rest_framework.utils import formatting
 
 from netbox.api.exceptions import SerializerNotFound
@@ -50,3 +56,17 @@ def get_view_name(view, suffix=None):
         name += ' ' + suffix
 
     return name
+
+
+def rest_api_server_error(request, *args, **kwargs):
+    """
+    Handle exceptions and return a useful error message for REST API requests.
+    """
+    type_, error, traceback = sys.exc_info()
+    data = {
+        'error': str(error),
+        'exception': type_.__name__,
+        'netbox_version': settings.VERSION,
+        'python_version': platform.python_version(),
+    }
+    return JsonResponse(data, status=status.HTTP_500_INTERNAL_SERVER_ERROR)

+ 2 - 19
netbox/utilities/views.py

@@ -6,20 +6,18 @@ from copy import deepcopy
 
 from django.conf import settings
 from django.contrib import messages
-from django.contrib.auth.decorators import login_required
-from django.contrib.contenttypes.models import ContentType
 from django.contrib.auth.mixins import AccessMixin
+from django.contrib.contenttypes.models import ContentType
 from django.core.exceptions import FieldDoesNotExist, ImproperlyConfigured, ObjectDoesNotExist, ValidationError
 from django.db import transaction, IntegrityError
 from django.db.models import ManyToManyField, ProtectedError
 from django.forms import Form, ModelMultipleChoiceField, MultipleHiddenInput, Textarea
-from django.http import HttpResponse, HttpResponseServerError, JsonResponse
+from django.http import HttpResponse, HttpResponseServerError
 from django.shortcuts import get_object_or_404, redirect, render
 from django.template import loader
 from django.template.exceptions import TemplateDoesNotExist
 from django.urls import reverse
 from django.urls.exceptions import NoReverseMatch
-from django.utils.decorators import method_decorator
 from django.utils.html import escape
 from django.utils.http import is_safe_url
 from django.utils.safestring import mark_safe
@@ -27,7 +25,6 @@ from django.views.decorators.csrf import requires_csrf_token
 from django.views.defaults import ERROR_500_TEMPLATE_NAME
 from django.views.generic import View
 from django_tables2 import RequestConfig
-from rest_framework import status
 
 from extras.models import CustomField, ExportTemplate
 from utilities.exceptions import AbortTransaction
@@ -1373,17 +1370,3 @@ def server_error(request, template_name=ERROR_500_TEMPLATE_NAME):
         'netbox_version': settings.VERSION,
         'python_version': platform.python_version(),
     }))
-
-
-def rest_api_server_error(request, *args, **kwargs):
-    """
-    Handle exceptions and return a useful error message for REST API requests.
-    """
-    type_, error, traceback = sys.exc_info()
-    data = {
-        'error': str(error),
-        'exception': type_.__name__,
-        'netbox_version': settings.VERSION,
-        'python_version': platform.python_version(),
-    }
-    return JsonResponse(data, status=status.HTTP_500_INTERNAL_SERVER_ERROR)