toolshed/backend/hostadmin/api.py
jedi 5faec68ebf
All checks were successful
continuous-integration/drone/push Build is passing
add ImportedIdentifierSets
2023-10-22 22:51:56 +02:00

60 lines
2.1 KiB
Python

from rest_framework import routers, viewsets
from rest_framework.authentication import TokenAuthentication
from rest_framework.permissions import IsAuthenticated, IsAdminUser
from authentication.signature_auth import SignatureAuthenticationLocal
from hostadmin.models import Domain
from hostadmin.serializers import DomainSerializer, CategorySerializer, PropertySerializer, TagSerializer
from toolshed.models import Category, Property, Tag
router = routers.SimpleRouter()
class DomainViewSet(viewsets.ModelViewSet):
queryset = Domain.objects.all()
serializer_class = DomainSerializer
authentication_classes = [TokenAuthentication, SignatureAuthenticationLocal]
permission_classes = [IsAuthenticated, IsAdminUser]
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
class CategoryViewSet(viewsets.ModelViewSet):
queryset = Category.objects.all()
serializer_class = CategorySerializer
authentication_classes = [TokenAuthentication, SignatureAuthenticationLocal]
permission_classes = [IsAuthenticated, IsAdminUser]
def perform_create(self, serializer):
serializer.save(origin='api')
class PropertyViewSet(viewsets.ModelViewSet):
queryset = Property.objects.all()
serializer_class = PropertySerializer
authentication_classes = [TokenAuthentication, SignatureAuthenticationLocal]
permission_classes = [IsAuthenticated, IsAdminUser]
def perform_create(self, serializer):
serializer.save(origin='api')
class TagViewSet(viewsets.ModelViewSet):
queryset = Tag.objects.all()
serializer_class = TagSerializer
authentication_classes = [TokenAuthentication, SignatureAuthenticationLocal]
permission_classes = [IsAuthenticated, IsAdminUser]
def perform_create(self, serializer):
serializer.save(origin='api')
router.register(r'domains', DomainViewSet, basename='domains')
router.register(r'categories', CategoryViewSet, basename='categories')
router.register(r'properties', PropertyViewSet, basename='properties')
router.register(r'tags', TagViewSet, basename='tags')
urlpatterns = [
*router.urls,
]