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:
parent
87d2da9d84
commit
fce988aef1
120 changed files with 1499 additions and 1078 deletions
7
api/libretime_api/core/views/__init__.py
Normal file
7
api/libretime_api/core/views/__init__.py
Normal 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
|
22
api/libretime_api/core/views/auth.py
Normal file
22
api/libretime_api/core/views/auth.py
Normal 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"
|
10
api/libretime_api/core/views/country.py
Normal file
10
api/libretime_api/core/views/country.py
Normal 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"
|
16
api/libretime_api/core/views/preference.py
Normal file
16
api/libretime_api/core/views/preference.py
Normal 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"
|
10
api/libretime_api/core/views/service.py
Normal file
10
api/libretime_api/core/views/service.py
Normal 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"
|
12
api/libretime_api/core/views/user.py
Normal file
12
api/libretime_api/core/views/user.py
Normal 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"
|
10
api/libretime_api/core/views/version.py
Normal file
10
api/libretime_api/core/views/version.py
Normal 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})
|
16
api/libretime_api/core/views/worker.py
Normal file
16
api/libretime_api/core/views/worker.py
Normal 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"
|
Loading…
Add table
Add a link
Reference in a new issue