@@ -57,6 +57,11 @@ class RecordViewSet(
57
57
serializer_class = RecordListSerializer
58
58
permission_classes = [AllowAny ]
59
59
60
+ def get_serializer_class (self ):
61
+ if self .action in ["create" ]:
62
+ return CreateRecordSerializer
63
+ return RecordListSerializer
64
+
60
65
def get_target_dates (self ) -> (datetime .date , datetime .date ):
61
66
q_target_date = self .request .query_params .get ('target_date' )
62
67
if q_target_date :
@@ -145,117 +150,3 @@ def create(self, request, *args, **kwargs):
145
150
record_serializer = RecordSerializer (record )
146
151
147
152
return Response (record_serializer .data )
148
-
149
-
150
- # deprecated under
151
-
152
-
153
- class RandomContentAPIView (GenericAPIView ):
154
- serializer_class = ContentSerializer
155
-
156
- def get_prev_filter (self ) -> Q :
157
- prev = self .request .query_params .get ('prev' )
158
- if not prev :
159
- return Q ()
160
- return ~ Q (id = int (prev ))
161
-
162
- @swagger_auto_schema (deprecated = True , operation_description = "to [GET] api/records/content/random/" )
163
- def get (self , request : Request ):
164
- prev_filter = self .get_prev_filter ()
165
- queryset = Content .objects .filter (
166
- prev_filter
167
- ).order_by (
168
- '?'
169
- ).first ()
170
-
171
- serializer = self .get_serializer (queryset )
172
- return Response (serializer .data )
173
-
174
-
175
- class RecordCreateAPIView (CreateAPIView ):
176
- serializer_class = RecordCreateSerializer
177
- permission_classes = [IsAuthenticated ]
178
-
179
- @swagger_auto_schema (
180
- deprecated = True ,
181
- operation_description = "to [POST] api/records/"
182
- )
183
- def post (self , request : Request , * args , ** kwargs ):
184
- serializer : RecordCreateSerializer = self .get_serializer (data = request .data )
185
- serializer .is_valid (raise_exception = True )
186
-
187
- username = serializer .validated_data .get ('username' )
188
- content_id = serializer .validated_data .get ('content_id' )
189
- text = serializer .validated_data .get ('text' )
190
-
191
- profile = CommonProfile .objects .get (name = username )
192
-
193
- record = Record .objects .create (
194
- content_id = content_id ,
195
- profile = profile ,
196
- text = text
197
- )
198
-
199
- record_serializer = RecordSerializer (record )
200
-
201
- return Response (record_serializer .data )
202
-
203
-
204
- class RecordListAPIView (ListAPIView ):
205
- serializer_class = RecordListSerializer
206
- permission_classes = [IsAuthenticated ]
207
-
208
- def get_target_dates (self ) -> (datetime .date , datetime .date ):
209
- q_target_date = self .request .query_params .get ('target_date' )
210
- if q_target_date :
211
- target_date_end = datetime .datetime .strptime (q_target_date , '%Y-%m-%d' ).date ()
212
- else :
213
- target_date_end = datetime .datetime .today ().astimezone (tz = KST ).date ()
214
- target_date_st = target_date_end - datetime .timedelta (days = 6 )
215
- return target_date_st , target_date_end
216
-
217
- def get_queryset (self ):
218
- target_date_st , target_date_end = self .get_target_dates ()
219
-
220
- queryset = Record .objects .filter (
221
- profile__user = self .request .user
222
- ).annotate (
223
- record_date = TruncDate ('created_at' , tzinfo = KST )
224
- ).filter (
225
- record_date__gte = target_date_st ,
226
- record_date__lte = target_date_end
227
- ).select_related (
228
- 'content'
229
- ).order_by (
230
- 'created_at'
231
- )
232
-
233
- return queryset
234
-
235
- def list (self , request , * args , ** kwargs ):
236
- target_date_st , target_date_end = self .get_target_dates ()
237
- queryset = self .filter_queryset (self .get_queryset ())
238
-
239
- serializer = RecordSerializer (queryset , many = True )
240
- records = serializer .data
241
-
242
- results = []
243
- while target_date_st <= target_date_end :
244
- results .append (dict (
245
- date = target_date_st .strftime ('%Y-%m-%d' ),
246
- records = list (filter (
247
- lambda x : datetime .datetime .fromisoformat (x .get ('created_at' )).astimezone (
248
- KST ).date () == target_date_st ,
249
- records
250
- ))
251
- ))
252
- target_date_st += datetime .timedelta (days = 1 )
253
- return Response (results )
254
-
255
- @swagger_auto_schema (
256
- deprecated = True ,
257
- operation_description = "to [GET] api/records/" ,
258
- query_serializer = RecordListQuerySerializer
259
- )
260
- def get (self , request , * args , ** kwargs ):
261
- return self .list (request , * args , ** kwargs )
0 commit comments