

배민의 경우에는 좀 독특한 방식의 찜하기를 지원하고 있다.
위에서처럼 하트를 누르는 동시에 찜리스트 목록으로 이동한다.
그리고 마치 생김새도 장바구니의 하위 호환처럼 생겼다.
(내가 생각한 찜목록과 전혀 다르다!)
이것을 구현하려면,
또 RESTful하게 하려면, GET 과 POST를 한번씩 해야하는건지,
아니면 POST/GET에서 다른 것의 역할까지 해야하는지 많은 고민을 했다.
결국 Frontend에서 두번 요청하는 것으로 하였다.

일단 찜 기능은 회원을 타겟으로 한 기능이기에 login-decorator기능을 활용했다.
일단 로직자체는 간단하다.
로그인을 성공하면 login-decorator에서 request.user에 payload에 담긴 정보를 담아준다. (유저 id)
그것을 바탕으로 productlike_set을 활용하여 모든것을 가져온다.
(user와 productlike는 M2M 관계다.)
찜을 처음하는 상품이라면 당연히 create를 하지만, 이미 찜한 상품이라면?!
그럴땐 언팔의 기능처럼 찜을 취소해야 할 것이다.
그래서 이미 있는 상품에 대해선 delete를 시켜준다.