Skip to content
Snippets Groups Projects
Verified Commit 36dddb29 authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

feat: add RadioSettingsSerializer

parent 3bb27f79
No related branches found
No related tags found
No related merge requests found
...@@ -42,6 +42,7 @@ from program.models import ( ...@@ -42,6 +42,7 @@ from program.models import (
MusicFocus, MusicFocus,
Note, Note,
NoteLink, NoteLink,
RadioSettings,
RRule, RRule,
Schedule, Schedule,
Show, Show,
...@@ -1098,3 +1099,40 @@ class NoteSerializer(serializers.ModelSerializer): ...@@ -1098,3 +1099,40 @@ class NoteSerializer(serializers.ModelSerializer):
instance.save() instance.save()
return instance return instance
class RadioSettingsSerializer(serializers.ModelSerializer):
cba = serializers.SerializerMethodField()
fallback = serializers.SerializerMethodField()
playout = serializers.SerializerMethodField()
station = serializers.SerializerMethodField()
class Meta:
read_only_fields = ("cba", "fallback", "playout", "station")
fields = read_only_fields
model = RadioSettings
def get_cba(self, obj) -> dict[str, str] | dict[str, list[str]]:
if self.context.get("request").user.is_authenticated:
return {
"api_key": obj.cba_api_key,
"domain": obj.cba_domains,
}
else:
return {"domains": obj.cba_domains}
@staticmethod
def get_fallback(obj) -> dict[str, int]:
return {"show_id": obj.fallback_show.id}
@staticmethod
def get_playout(obj) -> dict[str, dict[str, str]]:
return {"channels": obj.playout_channels}
@staticmethod
def get_station(obj) -> dict[str, int | str]:
return {
"name": obj.station_name,
"logoId": obj.station_logo.id,
"website": obj.station_website,
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment