예제 #1
0
 def get_news(self, handler, **kwargs) -> dict:
     """
     Get news by id
     :param handler:
     :return: news
     """
     news_id = kwargs.get('pk')
     news = self.news_repository.get_news(news_id)
     if not news:
         raise exceptions.NotFoundError()
     return asdict(news)
예제 #2
0
 def get_comment(self, handler, **kwargs) -> dict:
     """
     Get comment by id
     :param handler:
     :return: comment
     """
     comment_id = kwargs.get('pk')
     comment = self.comment_repository.get_comment(comment_id)
     if not comment:
         raise exceptions.NotFoundError()
     return asdict(comment)
예제 #3
0
    def delete_news(self, handler, **kwargs) -> dict:
        """
        Delete news by id
        :param handler:
        :return:
        """
        news_id = kwargs.get('pk')
        news = self.news_repository.get_news(news_id)
        if not news:
            raise exceptions.NotFoundError()

        self.news_repository.delete_news(news)
        return {}
예제 #4
0
    def delete_comment(self, handler, **kwargs) -> dict:
        """
        Delete comment by id
        :param handler:
        :return:
        """
        comment_id = kwargs.get('pk')
        comment = self.comment_repository.get_comment(comment_id)
        if not comment:
            raise exceptions.NotFoundError()

        self.comment_repository.delete_comment(comment)
        return {}
예제 #5
0
    def update_comment(self, handler, **kwargs) -> dict:
        """
        Update comment by id
        :param handler:
        :return:
        """
        comment_id = kwargs.get('pk')
        comment = self.comment_repository.get_comment(comment_id)
        if not comment:
            raise exceptions.NotFoundError()

        payload = self.validate_comment(handler.get_payload())
        comment.content = payload['content']
        self.comment_repository.update_comment(comment)
        return asdict(comment)
예제 #6
0
    def update_news(self, handler, **kwargs) -> dict:
        """
        Update news by id
        :param handler:
        :return:
        """
        news_id = kwargs.get('pk')
        news = self.news_repository.get_news(news_id)
        if not news:
            raise exceptions.NotFoundError()

        payload = self.validate_news(handler.get_payload())
        news.title = payload['title']
        news.content = payload['content']
        self.news_repository.update_news(news)
        return asdict(news)