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
0
api/libretime_api/history/__init__.py
Normal file
0
api/libretime_api/history/__init__.py
Normal file
7
api/libretime_api/history/apps.py
Normal file
7
api/libretime_api/history/apps.py
Normal file
|
@ -0,0 +1,7 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class HistoryConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "libretime_api.history"
|
||||
verbose_name = "LibreTime History API"
|
8
api/libretime_api/history/models/__init__.py
Normal file
8
api/libretime_api/history/models/__init__.py
Normal file
|
@ -0,0 +1,8 @@
|
|||
from .listener import ListenerCount, MountName, Timestamp
|
||||
from .live import LiveLog
|
||||
from .played import (
|
||||
PlayoutHistory,
|
||||
PlayoutHistoryMetadata,
|
||||
PlayoutHistoryTemplate,
|
||||
PlayoutHistoryTemplateField,
|
||||
)
|
27
api/libretime_api/history/models/listener.py
Normal file
27
api/libretime_api/history/models/listener.py
Normal file
|
@ -0,0 +1,27 @@
|
|||
from django.db import models
|
||||
|
||||
|
||||
class MountName(models.Model):
|
||||
mount_name = models.CharField(max_length=1024)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = "cc_mount_name"
|
||||
|
||||
|
||||
class Timestamp(models.Model):
|
||||
timestamp = models.DateTimeField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = "cc_timestamp"
|
||||
|
||||
|
||||
class ListenerCount(models.Model):
|
||||
timestamp = models.ForeignKey("Timestamp", models.DO_NOTHING)
|
||||
mount_name = models.ForeignKey("MountName", models.DO_NOTHING)
|
||||
listener_count = models.IntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = "cc_listener_count"
|
11
api/libretime_api/history/models/live.py
Normal file
11
api/libretime_api/history/models/live.py
Normal file
|
@ -0,0 +1,11 @@
|
|||
from django.db import models
|
||||
|
||||
|
||||
class LiveLog(models.Model):
|
||||
state = models.CharField(max_length=32)
|
||||
start_time = models.DateTimeField()
|
||||
end_time = models.DateTimeField(blank=True, null=True)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = "cc_live_log"
|
46
api/libretime_api/history/models/played.py
Normal file
46
api/libretime_api/history/models/played.py
Normal file
|
@ -0,0 +1,46 @@
|
|||
from django.db import models
|
||||
|
||||
|
||||
class PlayoutHistory(models.Model):
|
||||
file = models.ForeignKey("storage.File", models.DO_NOTHING, blank=True, null=True)
|
||||
starts = models.DateTimeField()
|
||||
ends = models.DateTimeField(blank=True, null=True)
|
||||
instance = models.ForeignKey(
|
||||
"schedule.ShowInstance", models.DO_NOTHING, blank=True, null=True
|
||||
)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = "cc_playout_history"
|
||||
|
||||
|
||||
class PlayoutHistoryMetadata(models.Model):
|
||||
history = models.ForeignKey("PlayoutHistory", models.DO_NOTHING)
|
||||
key = models.CharField(max_length=128)
|
||||
value = models.CharField(max_length=128)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = "cc_playout_history_metadata"
|
||||
|
||||
|
||||
class PlayoutHistoryTemplate(models.Model):
|
||||
name = models.CharField(max_length=128)
|
||||
type = models.CharField(max_length=35)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = "cc_playout_history_template"
|
||||
|
||||
|
||||
class PlayoutHistoryTemplateField(models.Model):
|
||||
template = models.ForeignKey("PlayoutHistoryTemplate", models.DO_NOTHING)
|
||||
name = models.CharField(max_length=128)
|
||||
label = models.CharField(max_length=128)
|
||||
type = models.CharField(max_length=128)
|
||||
is_file_md = models.BooleanField()
|
||||
position = models.IntegerField()
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = "cc_playout_history_template_field"
|
22
api/libretime_api/history/router.py
Normal file
22
api/libretime_api/history/router.py
Normal file
|
@ -0,0 +1,22 @@
|
|||
from rest_framework import routers
|
||||
|
||||
from .views import (
|
||||
ListenerCountViewSet,
|
||||
LiveLogViewSet,
|
||||
MountNameViewSet,
|
||||
PlayoutHistoryMetadataViewSet,
|
||||
PlayoutHistoryTemplateFieldViewSet,
|
||||
PlayoutHistoryTemplateViewSet,
|
||||
PlayoutHistoryViewSet,
|
||||
TimestampViewSet,
|
||||
)
|
||||
|
||||
router = routers.DefaultRouter()
|
||||
router.register("listener-counts", ListenerCountViewSet)
|
||||
router.register("live-logs", LiveLogViewSet)
|
||||
router.register("mount-names", MountNameViewSet)
|
||||
router.register("playout-history", PlayoutHistoryViewSet)
|
||||
router.register("playout-history-metadata", PlayoutHistoryMetadataViewSet)
|
||||
router.register("playout-history-templates", PlayoutHistoryTemplateViewSet)
|
||||
router.register("playout-history-template-fields", PlayoutHistoryTemplateFieldViewSet)
|
||||
router.register("timestamps", TimestampViewSet)
|
8
api/libretime_api/history/serializers/__init__.py
Normal file
8
api/libretime_api/history/serializers/__init__.py
Normal file
|
@ -0,0 +1,8 @@
|
|||
from .listener import ListenerCountSerializer, MountNameSerializer, TimestampSerializer
|
||||
from .live import LiveLogSerializer
|
||||
from .played import (
|
||||
PlayoutHistoryMetadataSerializer,
|
||||
PlayoutHistorySerializer,
|
||||
PlayoutHistoryTemplateFieldSerializer,
|
||||
PlayoutHistoryTemplateSerializer,
|
||||
)
|
21
api/libretime_api/history/serializers/listener.py
Normal file
21
api/libretime_api/history/serializers/listener.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from ..models import ListenerCount, MountName, Timestamp
|
||||
|
||||
|
||||
class MountNameSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = MountName
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
class TimestampSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = Timestamp
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
class ListenerCountSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = ListenerCount
|
||||
fields = "__all__"
|
9
api/libretime_api/history/serializers/live.py
Normal file
9
api/libretime_api/history/serializers/live.py
Normal file
|
@ -0,0 +1,9 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from ..models import LiveLog
|
||||
|
||||
|
||||
class LiveLogSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = LiveLog
|
||||
fields = "__all__"
|
32
api/libretime_api/history/serializers/played.py
Normal file
32
api/libretime_api/history/serializers/played.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from ..models import (
|
||||
PlayoutHistory,
|
||||
PlayoutHistoryMetadata,
|
||||
PlayoutHistoryTemplate,
|
||||
PlayoutHistoryTemplateField,
|
||||
)
|
||||
|
||||
|
||||
class PlayoutHistorySerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = PlayoutHistory
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
class PlayoutHistoryMetadataSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = PlayoutHistoryMetadata
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
class PlayoutHistoryTemplateSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = PlayoutHistoryTemplate
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
class PlayoutHistoryTemplateFieldSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = PlayoutHistoryTemplateField
|
||||
fields = "__all__"
|
0
api/libretime_api/history/tests/__init__.py
Normal file
0
api/libretime_api/history/tests/__init__.py
Normal file
8
api/libretime_api/history/views/__init__.py
Normal file
8
api/libretime_api/history/views/__init__.py
Normal file
|
@ -0,0 +1,8 @@
|
|||
from .listener import ListenerCountViewSet, MountNameViewSet, TimestampViewSet
|
||||
from .live import LiveLogViewSet
|
||||
from .played import (
|
||||
PlayoutHistoryMetadataViewSet,
|
||||
PlayoutHistoryTemplateFieldViewSet,
|
||||
PlayoutHistoryTemplateViewSet,
|
||||
PlayoutHistoryViewSet,
|
||||
)
|
26
api/libretime_api/history/views/listener.py
Normal file
26
api/libretime_api/history/views/listener.py
Normal file
|
@ -0,0 +1,26 @@
|
|||
from rest_framework import viewsets
|
||||
|
||||
from ..models import ListenerCount, MountName, Timestamp
|
||||
from ..serializers import (
|
||||
ListenerCountSerializer,
|
||||
MountNameSerializer,
|
||||
TimestampSerializer,
|
||||
)
|
||||
|
||||
|
||||
class MountNameViewSet(viewsets.ModelViewSet):
|
||||
queryset = MountName.objects.all()
|
||||
serializer_class = MountNameSerializer
|
||||
model_permission_name = "mountname"
|
||||
|
||||
|
||||
class TimestampViewSet(viewsets.ModelViewSet):
|
||||
queryset = Timestamp.objects.all()
|
||||
serializer_class = TimestampSerializer
|
||||
model_permission_name = "timestamp"
|
||||
|
||||
|
||||
class ListenerCountViewSet(viewsets.ModelViewSet):
|
||||
queryset = ListenerCount.objects.all()
|
||||
serializer_class = ListenerCountSerializer
|
||||
model_permission_name = "listenercount"
|
10
api/libretime_api/history/views/live.py
Normal file
10
api/libretime_api/history/views/live.py
Normal file
|
@ -0,0 +1,10 @@
|
|||
from rest_framework import viewsets
|
||||
|
||||
from ..models import LiveLog
|
||||
from ..serializers import LiveLogSerializer
|
||||
|
||||
|
||||
class LiveLogViewSet(viewsets.ModelViewSet):
|
||||
queryset = LiveLog.objects.all()
|
||||
serializer_class = LiveLogSerializer
|
||||
model_permission_name = "livelog"
|
38
api/libretime_api/history/views/played.py
Normal file
38
api/libretime_api/history/views/played.py
Normal file
|
@ -0,0 +1,38 @@
|
|||
from rest_framework import viewsets
|
||||
|
||||
from ..models import (
|
||||
PlayoutHistory,
|
||||
PlayoutHistoryMetadata,
|
||||
PlayoutHistoryTemplate,
|
||||
PlayoutHistoryTemplateField,
|
||||
)
|
||||
from ..serializers import (
|
||||
PlayoutHistoryMetadataSerializer,
|
||||
PlayoutHistorySerializer,
|
||||
PlayoutHistoryTemplateFieldSerializer,
|
||||
PlayoutHistoryTemplateSerializer,
|
||||
)
|
||||
|
||||
|
||||
class PlayoutHistoryViewSet(viewsets.ModelViewSet):
|
||||
queryset = PlayoutHistory.objects.all()
|
||||
serializer_class = PlayoutHistorySerializer
|
||||
model_permission_name = "playouthistory"
|
||||
|
||||
|
||||
class PlayoutHistoryMetadataViewSet(viewsets.ModelViewSet):
|
||||
queryset = PlayoutHistoryMetadata.objects.all()
|
||||
serializer_class = PlayoutHistoryMetadataSerializer
|
||||
model_permission_name = "playouthistorymetadata"
|
||||
|
||||
|
||||
class PlayoutHistoryTemplateViewSet(viewsets.ModelViewSet):
|
||||
queryset = PlayoutHistoryTemplate.objects.all()
|
||||
serializer_class = PlayoutHistoryTemplateSerializer
|
||||
model_permission_name = "playouthistorytemplate"
|
||||
|
||||
|
||||
class PlayoutHistoryTemplateFieldViewSet(viewsets.ModelViewSet):
|
||||
queryset = PlayoutHistoryTemplateField.objects.all()
|
||||
serializer_class = PlayoutHistoryTemplateFieldSerializer
|
||||
model_permission_name = "playouthistorytemplatefield"
|
Loading…
Add table
Add a link
Reference in a new issue