feat(api): split api into multiple apps (#1626)

Fixes #1622

- split the api into 4 apps: core, history, schedule, storage
- exploded the settings into testing/prod
This commit is contained in:
Jonas L 2022-04-04 14:38:50 +02:00 committed by GitHub
parent 87d2da9d84
commit fce988aef1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
120 changed files with 1499 additions and 1078 deletions

View file

@ -0,0 +1,7 @@
from .auth import LoginAttemptViewSet, SessionViewSet, UserTokenViewSet
from .country import CountryViewSet
from .preference import PreferenceViewSet, StreamSettingViewSet
from .service import ServiceRegisterViewSet
from .user import UserViewSet
from .version import version
from .worker import CeleryTaskViewSet, ThirdPartyTrackReferenceViewSet

View file

@ -0,0 +1,22 @@
from rest_framework import viewsets
from ..models import LoginAttempt, Session, UserToken
from ..serializers import LoginAttemptSerializer, SessionSerializer, UserTokenSerializer
class UserTokenViewSet(viewsets.ModelViewSet):
queryset = UserToken.objects.all()
serializer_class = UserTokenSerializer
model_permission_name = "usertoken"
class SessionViewSet(viewsets.ModelViewSet):
queryset = Session.objects.all()
serializer_class = SessionSerializer
model_permission_name = "session"
class LoginAttemptViewSet(viewsets.ModelViewSet):
queryset = LoginAttempt.objects.all()
serializer_class = LoginAttemptSerializer
model_permission_name = "loginattempt"

View file

@ -0,0 +1,10 @@
from rest_framework import viewsets
from ..models import Country
from ..serializers import CountrySerializer
class CountryViewSet(viewsets.ModelViewSet):
queryset = Country.objects.all()
serializer_class = CountrySerializer
model_permission_name = "country"

View file

@ -0,0 +1,16 @@
from rest_framework import viewsets
from ..models import Preference, StreamSetting
from ..serializers import PreferenceSerializer, StreamSettingSerializer
class PreferenceViewSet(viewsets.ModelViewSet):
queryset = Preference.objects.all()
serializer_class = PreferenceSerializer
model_permission_name = "preference"
class StreamSettingViewSet(viewsets.ModelViewSet):
queryset = StreamSetting.objects.all()
serializer_class = StreamSettingSerializer
model_permission_name = "streamsetting"

View file

@ -0,0 +1,10 @@
from rest_framework import viewsets
from ..models import ServiceRegister
from ..serializers import ServiceRegisterSerializer
class ServiceRegisterViewSet(viewsets.ModelViewSet):
queryset = ServiceRegister.objects.all()
serializer_class = ServiceRegisterSerializer
model_permission_name = "serviceregister"

View file

@ -0,0 +1,12 @@
from django.contrib.auth import get_user_model
from rest_framework import viewsets
from ...permissions import IsAdminOrOwnUser
from ..serializers import UserSerializer
class UserViewSet(viewsets.ModelViewSet):
queryset = get_user_model().objects.all()
serializer_class = UserSerializer
permission_classes = [IsAdminOrOwnUser]
model_permission_name = "user"

View file

@ -0,0 +1,10 @@
from django.conf import settings
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import AllowAny
from rest_framework.response import Response
@api_view(["GET"])
@permission_classes((AllowAny,))
def version(request, *args, **kwargs):
return Response({"api_version": settings.API_VERSION})

View file

@ -0,0 +1,16 @@
from rest_framework import viewsets
from ..models import CeleryTask, ThirdPartyTrackReference
from ..serializers import CeleryTaskSerializer, ThirdPartyTrackReferenceSerializer
class ThirdPartyTrackReferenceViewSet(viewsets.ModelViewSet):
queryset = ThirdPartyTrackReference.objects.all()
serializer_class = ThirdPartyTrackReferenceSerializer
model_permission_name = "thirdpartytrackreference"
class CeleryTaskViewSet(viewsets.ModelViewSet):
queryset = CeleryTask.objects.all()
serializer_class = CeleryTaskSerializer
model_permission_name = "celerytask"