Add explicit schema types for presigned media URL fields
Swagger inferred these SerializerMethodFields as untyped strings and warned on generation; annotate each with @extend_schema_field so the generated OpenAPI schema declares them as nullable URLs.
This commit is contained in:
parent
85598d347a
commit
3748da1af7
2 changed files with 10 additions and 0 deletions
|
|
@ -1,3 +1,4 @@
|
|||
from drf_spectacular.utils import extend_schema_field
|
||||
from rest_framework import serializers
|
||||
|
||||
from apps.core.media import presigned_media_url
|
||||
|
|
@ -13,6 +14,7 @@ class ProductCategorySerializer(serializers.ModelSerializer):
|
|||
model = ProductCategory
|
||||
fields = ('uuid', 'name', 'parent', 'icon', 'icon_url', 'order')
|
||||
|
||||
@extend_schema_field(serializers.URLField(allow_null=True))
|
||||
def get_icon_url(self, obj):
|
||||
return presigned_media_url(obj.icon)
|
||||
|
||||
|
|
@ -28,6 +30,7 @@ class ProductListSerializer(serializers.ModelSerializer):
|
|||
'is_active', 'is_out_of_stock',
|
||||
)
|
||||
|
||||
@extend_schema_field(serializers.URLField(allow_null=True))
|
||||
def get_image_url(self, obj):
|
||||
return presigned_media_url(obj.image)
|
||||
|
||||
|
|
@ -60,6 +63,7 @@ class SellerProductSerializer(serializers.ModelSerializer):
|
|||
)
|
||||
read_only_fields = ('sold_count',)
|
||||
|
||||
@extend_schema_field(serializers.URLField(allow_null=True))
|
||||
def get_image_url(self, obj):
|
||||
return presigned_media_url(obj.image)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
from django.contrib.gis.geos import Point
|
||||
from drf_spectacular.utils import extend_schema_field
|
||||
from rest_framework import serializers
|
||||
|
||||
from apps.core.media import presigned_media_url
|
||||
|
|
@ -15,6 +16,7 @@ class StoreCategorySerializer(serializers.ModelSerializer):
|
|||
model = StoreCategory
|
||||
fields = ('uuid', 'name', 'icon', 'icon_url', 'order')
|
||||
|
||||
@extend_schema_field(serializers.URLField(allow_null=True))
|
||||
def get_icon_url(self, obj):
|
||||
return presigned_media_url(obj.icon)
|
||||
|
||||
|
|
@ -38,9 +40,11 @@ class StoreListSerializer(serializers.ModelSerializer):
|
|||
'free_delivery_threshold', 'is_open',
|
||||
)
|
||||
|
||||
@extend_schema_field(serializers.URLField(allow_null=True))
|
||||
def get_logo_url(self, obj):
|
||||
return presigned_media_url(obj.logo)
|
||||
|
||||
@extend_schema_field(serializers.URLField(allow_null=True))
|
||||
def get_cover_image_url(self, obj):
|
||||
return presigned_media_url(obj.cover_image)
|
||||
|
||||
|
|
@ -117,9 +121,11 @@ class SellerStoreSerializer(serializers.ModelSerializer):
|
|||
)
|
||||
read_only_fields = ('rating_avg', 'rating_count', 'status')
|
||||
|
||||
@extend_schema_field(serializers.URLField(allow_null=True))
|
||||
def get_logo_url(self, obj):
|
||||
return presigned_media_url(obj.logo)
|
||||
|
||||
@extend_schema_field(serializers.URLField(allow_null=True))
|
||||
def get_cover_image_url(self, obj):
|
||||
return presigned_media_url(obj.cover_image)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue