def post(self, request, *args, **kwargs): self.only_mine() user = request.user article_id = self.get_article_id(request.DATA) Favorites.create(user, article_id) # NOTE: maybe check if article exist first return STATUS_OK_RESPONSE
def get(self, request, *args, **kwargs): self.only_mine() user = request.user read_tag = request.QUERY_PARAMS.get(KEY_READ_TAG) params = {} if read_tag: params['id__lt'] = read_tag articles = Favorites.get_by_user(user, 20, **params) from article.serializers import ArticleFavSerializer return Response([ArticleFavSerializer(article).data for article in articles])
def delete(self, request, *args, **kwargs): self.only_mine() user = request.user article_id = self.get_article_id(request.QUERY_PARAMS) Favorites.discard(user, article_id) return STATUS_OK_RESPONSE
def check_favored(self, article): from people.models import Favorites favorites = Favorites.objects(user_id=str(self.id), article_id=str(article.id)) return bool(favorites)