1919
2020class LaundryShopView (APIView ):
2121 def get (self , request , * args , ** kwargs ):
22+ '''
23+ # 기능
24+ 전체 세탁소 조회
25+
26+ '''
2227 try :
2328 queryset = LaundryShop .objects .all ()
2429 except :
@@ -32,14 +37,14 @@ def get(self, request, *args, **kwargs):
3237
3338class LaundryShopDetailView (APIView ):
3439
35- def get_object (self , request , id ):
40+ def get_object (self , id ):
3641 try :
3742 return LaundryShop .objects .get (id = id )
3843 except ObjectDoesNotExist :
3944 return None
4045
4146 def get (self , request , id , * args , ** kwargs ):
42- laundry_shop = self .get_object (request , id )
47+ laundry_shop = self .get_object (id )
4348 if laundry_shop is None :
4449 return Response ({
4550 'response' : 'error' ,
@@ -55,6 +60,11 @@ def get(self, request, id, *args, **kwargs):
5560
5661class ReviewView (APIView ):
5762 def get (self , request , id , * args , ** kwargs ):
63+ '''
64+ # 기능
65+ {id}세탁소의 전체 리뷰 조회
66+
67+ '''
5868 laundry_shop = LaundryShop .objects .get (id = id )
5969 queryset = Review .objects .filter (laundryshop = laundry_shop )
6070 serializer = ReviewSerializer (queryset , many = True )
@@ -65,6 +75,20 @@ def get(self, request, id, *args, **kwargs):
6575 })
6676
6777 def post (self , request , id , * args , ** kwargs ):
78+ '''
79+ # 기능
80+ {id}세탁소에 리뷰 생성
81+ # example
82+ {
83+ "review": {
84+ "content": "{}세탁소 최고!",
85+ "grade": 3,
86+ "image": {
87+ "imageUrls": ["이미지주소1", " "]
88+ }
89+ }
90+ }
91+ '''
6892 try :
6993 data = request .data ['review' ]
7094 except :
@@ -91,18 +115,23 @@ def post(self, request, id, *args, **kwargs):
91115
92116
93117class ReviewDetailView (APIView ):
94- def get_object (self , request , review_id ):
118+ def get_object (self , review_id ):
95119 try :
96120 return Review .objects .get (id = review_id )
97121 except ObjectDoesNotExist :
98122 return None
99123
100124 def get (self , request , id , review_id ):
101- review = self .get_object (request , review_id )
125+ '''
126+ # 기능
127+ {id}세탁소의 {review_id}리뷰 상세 조회
128+
129+ '''
130+ review = self .get_object (review_id )
102131 if review is None :
103132 return Response ({
104133 'response' : 'error' ,
105- 'message' : '{} review를 찾을 수 없습니다.' .format (id )
134+ 'message' : '{} review를 찾을 수 없습니다.' .format (review_id )
106135 })
107136 serializer = ReviewSerializer (review )
108137 return Response ({
@@ -112,11 +141,20 @@ def get(self, request, id, review_id):
112141 })
113142
114143 def put (self , request , id , review_id ):
115- review = self .get_object (request , review_id )
144+ '''
145+ # 기능
146+ {id}세탁소의 {review_id}리뷰 수정
147+ # example
148+ {
149+ "content": "스마일 세탁소 사랑해요!"
150+ }
151+
152+ '''
153+ review = self .get_object (review_id )
116154 if review is None :
117155 return Response ({
118156 'response' : 'error' ,
119- 'message' : '{} review를 찾을 수 없습니다.' .format (id )
157+ 'message' : '{} review를 찾을 수 없습니다.' .format (review_id )
120158 })
121159 serializer = ReviewSerializer (review , data = request .data , partial = True )
122160 if serializer .is_valid ():
@@ -133,7 +171,13 @@ def put(self, request, id, review_id):
133171 })
134172
135173 def delete (self , request , id , review_id ):
136- review = self .get_object (request , review_id )
174+ '''
175+ # 기능
176+ {id}세탁소의 {review_id}리뷰 삭제
177+
178+ '''
179+
180+ review = self .get_object (review_id )
137181 if review is None :
138182 return Response ({
139183 'response' : 'error' ,
@@ -155,6 +199,11 @@ def delete(self, request, id, review_id):
155199
156200class LaundryShopLikeView (APIView ):
157201 def post (self , request , id , * args , ** kwargs ):
202+ '''
203+ # 기능
204+ {id}세탁소의 좋아요 토글
205+
206+ '''
158207 profile = request .user
159208 try :
160209 laundryshop = LaundryShop .objects .get (id = id )
@@ -164,32 +213,36 @@ def post(self, request, id, *args, **kwargs):
164213 'message' : '{} laundry shop을 찾을 수 없습니다.' .format (id )
165214 })
166215
167- like = Like (
168- profile = profile ,
169- laundryshop = laundryshop
170- )
216+ is_liked = False
217+
171218 try :
219+ like = Like .objects .get (profile = profile , laundryshop = laundryshop )
220+ except ObjectDoesNotExist :
221+ like = Like (
222+ profile = profile ,
223+ laundryshop = laundryshop
224+ )
172225 like .save ()
173- except :
174- return Response ({
175- 'response' : 'error' ,
176- 'message' : 'db에서 생성에 실패했습니다.'
177- })
226+ is_liked = True
227+
228+ if not is_liked :
229+ like . delete ()
230+
178231 try :
179- laundryshop .like_num += 1
232+ laundryshop .like_num += - 1 if is_liked else 1
180233 laundryshop .save ()
181234 except :
182235 return Response ({
183236 'response' : 'error' ,
184- 'message' : 'db에서 좋아요 수 증가에 실패했습니다.'
237+ 'message' : 'db에서 좋아요 수 변화에 실패했습니다.'
185238 })
186239
187240 return Response ({
188241 'response' : 'success' ,
189- 'message' : 'like가 성공적으로 생성되었습니다 .'
242+ 'message' : 'like가 성공적으로 변화되었습니다 .'
190243 })
191244
192- def delete (self , request , id , * args , ** kwargs ):
245+ # def delete(self, request, id, *args, **kwargs):
193246 profile = request .user
194247 try :
195248 laundryshop = LaundryShop .objects .get (id = id )
@@ -232,6 +285,16 @@ def delete(self, request, id, *args, **kwargs):
232285
233286class OrderForReviewView (APIView ):
234287 def get (self , request , is_reviewd , * args , ** kwargs ):
288+ '''
289+ # 기능
290+ 사용자가 한 주문
291+ # parameter
292+ is_reviewd : True / False
293+ * True일 경우 : 리뷰가 있는 order
294+ * False일 경우 : 리뷰가 없는 order
295+
296+ '''
297+
235298 profile = request .user
236299 orders = ""
237300 # 사용자가 한 주문 중에 review 를 남긴 주문
@@ -264,13 +327,13 @@ def get_object(self, order_id):
264327 return Order .objects .get (id = order_id )
265328 except ObjectDoesNotExist :
266329 return None
267- except :
268- return Response ({
269- 'response' : 'error' ,
270- 'message' : 'DB 문제'
271- })
272330
273331 def get (self , request , order_id , * args , ** kwargs ):
332+ '''
333+ # 기능
334+ 주문에 해당되는 리뷰 상세 조회
335+
336+ '''
274337 order = self .get_object (order_id )
275338 if order is None :
276339 return Response ({
@@ -285,6 +348,21 @@ def get(self, request, order_id, *args, **kwargs):
285348 })
286349
287350 def post (self , request , order_id , * args , ** kwargs ):
351+ '''
352+ # 기능
353+ 주문에 해당되는 리뷰 생성
354+ # example
355+ {
356+ "review": {
357+ "content": "스마일세탁소가 제일 깨끗해요!!",
358+ "grade": 3,
359+ "image": {
360+ "imageUrls": ["이미지주소1", " "]
361+ }
362+ }
363+ }
364+
365+ '''
288366 try :
289367 data = request .data ['review' ]
290368 except :
0 commit comments