|
1 | | -from drf_spectacular.utils import OpenApiResponse, extend_schema |
| 1 | +from drf_spectacular.utils import extend_schema_view |
2 | 2 | from rest_framework.viewsets import GenericViewSet |
3 | 3 |
|
4 | 4 | from core.errors import NotExistException |
5 | 5 | from core.responses.base import BaseResponse |
6 | | -from core.responses.serializer import ( |
7 | | - ErrorResponseSerializer, |
8 | | - ListSuccessResponseSerializer, |
9 | | - SuccessResponseSerializer, |
10 | | -) |
11 | 6 |
|
12 | 7 | from .models import FAQ |
13 | 8 | from .serializers import FAQSerializer |
| 9 | +from .swagger import FAQAPIDocs |
14 | 10 |
|
15 | 11 |
|
| 12 | +@extend_schema_view(list=FAQAPIDocs.list(), retrieve=FAQAPIDocs.retrieve()) |
16 | 13 | class FAQViewSet(GenericViewSet): |
17 | 14 | serializer_class = FAQSerializer |
18 | 15 |
|
19 | 16 | def get_queryset(self): |
20 | | - """ |
21 | | - ## queryset에서 is_deleted는 제외시켜주는 역할 |
22 | | - """ |
23 | 17 | return FAQ.objects.filter(is_deleted=False) |
24 | 18 |
|
25 | | - @extend_schema( |
26 | | - description="모든 FAQ 목록 조회", |
27 | | - responses={ |
28 | | - "200/성공": ListSuccessResponseSerializer, |
29 | | - "200/에러": ErrorResponseSerializer, |
30 | | - }, |
31 | | - ) |
32 | | - def list(self, request, *args, **kwargs): |
33 | | - """ |
34 | | - ## 모든 FAQ 목록 조회 |
35 | | - ### 특징 : is_deleted는 제외 |
36 | | - """ |
| 19 | + def list(self, request, *args, **kwargs) -> BaseResponse: |
37 | 20 | queryset = self.get_queryset() |
38 | 21 | if not queryset.exists(): |
39 | 22 | raise NotExistException() |
40 | 23 | page = self.paginate_queryset(queryset) # ✅ 페이지네이션 적용 |
41 | 24 | serializer = self.get_serializer(page or queryset, many=True) |
42 | 25 | return self.get_paginated_response(serializer.data) |
43 | 26 |
|
44 | | - @extend_schema( |
45 | | - description="모든 FAQ 목록 조회", |
46 | | - responses={ |
47 | | - "200/성공": OpenApiResponse( |
48 | | - response=SuccessResponseSerializer, |
49 | | - description="응답 성공", |
50 | | - ), |
51 | | - "200/에러": OpenApiResponse( |
52 | | - response=ErrorResponseSerializer, |
53 | | - description="응답 에러", |
54 | | - ), |
55 | | - }, |
56 | | - ) |
57 | | - def retrieve(self, request, *args, **kwargs): |
58 | | - """ |
59 | | - ## 특정 FAQ 조회 |
60 | | - """ |
| 27 | + def retrieve(self, request, *args, **kwargs) -> BaseResponse: |
61 | 28 | instance = self.get_object() |
62 | 29 | serializer = self.get_serializer(instance) |
63 | 30 | return BaseResponse(serializer.data) |
0 commit comments