mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-27 11:06:44 +00:00
Remove unneeded AjaxView usage (#8461)
* remove unneeded AjaxView usage * add schema * bump schema version * make schema more acurate * exclude not found view * make script also axept base api
This commit is contained in:
parent
5464bc5a8a
commit
9cd0394dc4
@ -44,7 +44,8 @@ def top_level_path(path: str) -> str:
|
||||
|
||||
path = path.strip()
|
||||
|
||||
key = path.split('/')[1]
|
||||
parts = path.split('/')
|
||||
key = parts[1] if len(parts) > 1 else parts[0]
|
||||
|
||||
if key in SPECIAL_PATHS:
|
||||
return key
|
||||
|
@ -30,7 +30,6 @@ from .helpers_email import is_email_configured
|
||||
from .mixins import ListAPI, RetrieveUpdateAPI
|
||||
from .status import check_system_health, is_worker_running
|
||||
from .version import inventreeApiText
|
||||
from .views import AjaxView
|
||||
|
||||
logger = logging.getLogger('inventree')
|
||||
|
||||
@ -196,8 +195,35 @@ class VersionTextView(ListAPI):
|
||||
return JsonResponse(inventreeApiText())
|
||||
|
||||
|
||||
class InfoView(AjaxView):
|
||||
"""Simple JSON endpoint for InvenTree information.
|
||||
class InfoApiSerializer(serializers.Serializer):
|
||||
"""InvenTree server information - some information might be blanked if called without elevated credentials."""
|
||||
|
||||
server = serializers.CharField(read_only=True)
|
||||
version = serializers.CharField(read_only=True)
|
||||
instance = serializers.CharField(read_only=True)
|
||||
apiVersion = serializers.IntegerField(read_only=True) # noqa: N815
|
||||
worker_running = serializers.BooleanField(read_only=True)
|
||||
worker_count = serializers.IntegerField(read_only=True)
|
||||
worker_pending_tasks = serializers.IntegerField(read_only=True)
|
||||
plugins_enabled = serializers.BooleanField(read_only=True)
|
||||
plugins_install_disabled = serializers.BooleanField(read_only=True)
|
||||
active_plugins = serializers.JSONField(read_only=True)
|
||||
email_configured = serializers.BooleanField(read_only=True)
|
||||
debug_mode = serializers.BooleanField(read_only=True)
|
||||
docker_mode = serializers.BooleanField(read_only=True)
|
||||
default_locale = serializers.ChoiceField(
|
||||
choices=settings.LOCALE_CODES, read_only=True
|
||||
)
|
||||
system_health = serializers.BooleanField(read_only=True)
|
||||
database = serializers.CharField(read_only=True)
|
||||
platform = serializers.CharField(read_only=True)
|
||||
installer = serializers.CharField(read_only=True)
|
||||
target = serializers.CharField(read_only=True)
|
||||
django_admin = serializers.CharField(read_only=True)
|
||||
|
||||
|
||||
class InfoView(APIView):
|
||||
"""JSON endpoint for InvenTree server information.
|
||||
|
||||
Use to confirm that the server is running, etc.
|
||||
"""
|
||||
@ -208,6 +234,13 @@ class InfoView(AjaxView):
|
||||
"""Return the current number of outstanding background tasks."""
|
||||
return OrmQ.objects.count()
|
||||
|
||||
@extend_schema(
|
||||
responses={
|
||||
200: OpenApiResponse(
|
||||
response=InfoApiSerializer, description='InvenTree server information'
|
||||
)
|
||||
}
|
||||
)
|
||||
def get(self, request, *args, **kwargs):
|
||||
"""Serve current server information."""
|
||||
is_staff = request.user.is_staff
|
||||
@ -261,7 +294,7 @@ class InfoView(AjaxView):
|
||||
return False
|
||||
|
||||
|
||||
class NotFoundView(AjaxView):
|
||||
class NotFoundView(APIView):
|
||||
"""Simple JSON view when accessing an invalid API view."""
|
||||
|
||||
permission_classes = [permissions.AllowAny]
|
||||
@ -280,22 +313,27 @@ class NotFoundView(AjaxView):
|
||||
"""Return 404."""
|
||||
return self.not_found(request)
|
||||
|
||||
@extend_schema(exclude=True)
|
||||
def get(self, request, *args, **kwargs):
|
||||
"""Return 404."""
|
||||
return self.not_found(request)
|
||||
|
||||
@extend_schema(exclude=True)
|
||||
def post(self, request, *args, **kwargs):
|
||||
"""Return 404."""
|
||||
return self.not_found(request)
|
||||
|
||||
@extend_schema(exclude=True)
|
||||
def patch(self, request, *args, **kwargs):
|
||||
"""Return 404."""
|
||||
return self.not_found(request)
|
||||
|
||||
@extend_schema(exclude=True)
|
||||
def put(self, request, *args, **kwargs):
|
||||
"""Return 404."""
|
||||
return self.not_found(request)
|
||||
|
||||
@extend_schema(exclude=True)
|
||||
def delete(self, request, *args, **kwargs):
|
||||
"""Return 404."""
|
||||
return self.not_found(request)
|
||||
|
@ -1,13 +1,17 @@
|
||||
"""InvenTree API version information."""
|
||||
|
||||
# InvenTree API version
|
||||
INVENTREE_API_VERSION = 279
|
||||
INVENTREE_API_VERSION = 280
|
||||
|
||||
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
|
||||
|
||||
|
||||
INVENTREE_API_TEXT = """
|
||||
|
||||
v280 - 2024-11-10 : https://github.com/inventree/InvenTree/pull/8461
|
||||
- Makes schema for API information endpoint more informing
|
||||
- Removes general not found endpoint
|
||||
|
||||
v279 - 2024-11-09 : https://github.com/inventree/InvenTree/pull/8458
|
||||
- Adds "order_outstanding" and "part" filters to the BuildLine API endpoint
|
||||
- Adds "order_outstanding" filter to the SalesOrderLineItem API endpoint
|
||||
|
Loading…
x
Reference in New Issue
Block a user