活动发布
All checks were successful
Deploy to Server / deploy (push) Successful in 25s

This commit is contained in:
jeremygan2021
2026-03-04 13:20:16 +08:00
parent 0e5f6ea592
commit f4a50196d4

View File

@@ -6,7 +6,7 @@ from rest_framework import serializers, permissions
from django.core.signing import TimestampSigner, BadSignature, SignatureExpired from django.core.signing import TimestampSigner, BadSignature, SignatureExpired
from django.utils import timezone from django.utils import timezone
from django.db import models from django.db import models
from drf_spectacular.utils import extend_schema from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes
from shop.models import WeChatUser, Order from shop.models import WeChatUser, Order
from shop.views import get_wechat_pay_client from shop.views import get_wechat_pay_client
@@ -439,13 +439,31 @@ class AdminPublishViewSet(viewsets.ViewSet):
return None return None
@extend_schema(summary="API发布活动") @extend_schema(
summary="API发布活动",
parameters=[
OpenApiParameter(
name='apikey',
description='API访问密钥',
required=True,
type=OpenApiTypes.STR,
location=OpenApiParameter.QUERY
),
OpenApiParameter(
name='phone_number',
description='管理员手机号 (用于关联发布者)',
required=True,
type=OpenApiTypes.STR,
location=OpenApiParameter.QUERY
)
]
)
@action(detail=False, methods=['post']) @action(detail=False, methods=['post'])
def publish_activity(self, request): def publish_activity(self, request):
if not self.check_api_key(request): if not self.check_api_key(request):
return Response({'error': 'Invalid API Key'}, status=403) return Response({'error': 'Invalid API Key'}, status=403)
phone = request.data.get('phone_number') phone = request.data.get('phone_number') or request.query_params.get('phone_number')
user = self.get_admin_user_by_phone(phone) user = self.get_admin_user_by_phone(phone)
if not user: if not user:
return Response({'error': 'Admin user not found with this phone number'}, status=404) return Response({'error': 'Admin user not found with this phone number'}, status=404)
@@ -457,13 +475,31 @@ class AdminPublishViewSet(viewsets.ViewSet):
return Response(serializer.data, status=201) return Response(serializer.data, status=201)
return Response(serializer.errors, status=400) return Response(serializer.errors, status=400)
@extend_schema(summary="API发布帖子") @extend_schema(
summary="API发布帖子",
parameters=[
OpenApiParameter(
name='apikey',
description='API访问密钥',
required=True,
type=OpenApiTypes.STR,
location=OpenApiParameter.QUERY
),
OpenApiParameter(
name='phone_number',
description='管理员手机号 (用于关联发布者)',
required=True,
type=OpenApiTypes.STR,
location=OpenApiParameter.QUERY
)
]
)
@action(detail=False, methods=['post']) @action(detail=False, methods=['post'])
def publish_topic(self, request): def publish_topic(self, request):
if not self.check_api_key(request): if not self.check_api_key(request):
return Response({'error': 'Invalid API Key'}, status=403) return Response({'error': 'Invalid API Key'}, status=403)
phone = request.data.get('phone_number') phone = request.data.get('phone_number') or request.query_params.get('phone_number')
user = self.get_admin_user_by_phone(phone) user = self.get_admin_user_by_phone(phone)
if not user: if not user:
return Response({'error': 'Admin user not found with this phone number'}, status=404) return Response({'error': 'Admin user not found with this phone number'}, status=404)