fix channel metadata choices schema
This commit is contained in:
parent
864ab4a758
commit
13b3e7dc3d
|
@ -2,10 +2,12 @@ from django import http
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.db.models import Count, Prefetch, Q, Sum
|
from django.db.models import Count, Prefetch, Q, Sum
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from drf_spectacular.utils import extend_schema, extend_schema_view
|
from drf_spectacular.utils import extend_schema, extend_schema_view, inline_serializer
|
||||||
from rest_framework import decorators, exceptions, mixins
|
from rest_framework import decorators, exceptions, mixins
|
||||||
from rest_framework import permissions as rest_permissions
|
from rest_framework import permissions as rest_permissions
|
||||||
from rest_framework import response, viewsets
|
from rest_framework import response
|
||||||
|
from rest_framework import serializers as rest_serializers
|
||||||
|
from rest_framework import viewsets
|
||||||
|
|
||||||
from funkwhale_api.common import locales, permissions, preferences
|
from funkwhale_api.common import locales, permissions, preferences
|
||||||
from funkwhale_api.common import utils as common_utils
|
from funkwhale_api.common import utils as common_utils
|
||||||
|
@ -210,6 +212,32 @@ class ChannelViewSet(
|
||||||
data = serializers.rss_serialize_channel_full(channel=object, uploads=uploads)
|
data = serializers.rss_serialize_channel_full(channel=object, uploads=uploads)
|
||||||
return response.Response(data, status=200)
|
return response.Response(data, status=200)
|
||||||
|
|
||||||
|
@extend_schema(
|
||||||
|
responses=inline_serializer(
|
||||||
|
name="MetedataChoicesSerializer",
|
||||||
|
fields={
|
||||||
|
"language": rest_serializers.ListField(
|
||||||
|
child=inline_serializer(
|
||||||
|
name="LanguageItem",
|
||||||
|
fields={
|
||||||
|
"value": rest_serializers.CharField(),
|
||||||
|
"label": rest_serializers.CharField(),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
),
|
||||||
|
"itunes_category": rest_serializers.ListField(
|
||||||
|
child=inline_serializer(
|
||||||
|
name="iTunesCategoryItem",
|
||||||
|
fields={
|
||||||
|
"value": rest_serializers.CharField(),
|
||||||
|
"label": rest_serializers.CharField(),
|
||||||
|
"children": rest_serializers.CharField(),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
)
|
||||||
@decorators.action(
|
@decorators.action(
|
||||||
methods=["get"],
|
methods=["get"],
|
||||||
detail=False,
|
detail=False,
|
||||||
|
|
|
@ -2152,7 +2152,7 @@ paths:
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Channel'
|
$ref: '#/components/schemas/MetedataChoices'
|
||||||
description: ''
|
description: ''
|
||||||
/api/v1/channels/rss-subscribe/:
|
/api/v1/channels/rss-subscribe/:
|
||||||
post:
|
post:
|
||||||
|
@ -11662,7 +11662,7 @@ paths:
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Channel'
|
$ref: '#/components/schemas/MetedataChoices'
|
||||||
description: ''
|
description: ''
|
||||||
/api/v2/channels/rss-subscribe/:
|
/api/v2/channels/rss-subscribe/:
|
||||||
post:
|
post:
|
||||||
|
@ -20948,6 +20948,16 @@ components:
|
||||||
required:
|
required:
|
||||||
- channel
|
- channel
|
||||||
- uuid
|
- uuid
|
||||||
|
LanguageItem:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
label:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- label
|
||||||
|
- value
|
||||||
Library:
|
Library:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
@ -23286,6 +23296,20 @@ components:
|
||||||
readOnly: true
|
readOnly: true
|
||||||
required:
|
required:
|
||||||
- tracks
|
- tracks
|
||||||
|
MetedataChoices:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
language:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/LanguageItem'
|
||||||
|
itunes_category:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/iTunesCategoryItem'
|
||||||
|
required:
|
||||||
|
- itunes_category
|
||||||
|
- language
|
||||||
ModerationTarget:
|
ModerationTarget:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
@ -26069,6 +26093,19 @@ components:
|
||||||
minLength: 1
|
minLength: 1
|
||||||
required:
|
required:
|
||||||
- key
|
- key
|
||||||
|
iTunesCategoryItem:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
label:
|
||||||
|
type: string
|
||||||
|
children:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- children
|
||||||
|
- label
|
||||||
|
- value
|
||||||
securitySchemes:
|
securitySchemes:
|
||||||
ApplicationToken:
|
ApplicationToken:
|
||||||
type: http
|
type: http
|
||||||
|
|
Loading…
Reference in New Issue