def search_article(self, name):

        # Query database
        with self._database_engine.new_session() as session:
            article_dao = ArticleDAO(session)
            article = article_dao.get_by_name(name)
            return article.to_dict()
    def update_article(self, article_id, article_data):

        self._check_profile_data(article_data, update=True)
        with self._database_engine.new_session() as session:
            article_dao = ArticleDAO(session)
            article = article_dao.get(article_id)
            article = article_dao.update(article, article_data)
            return article.to_dict()
    def create_article(self, data):

        self._check_profile_data(data)
        try:
            with self._database_engine.new_session() as session:
                # Save member in database
                article = ArticleDAO(session).create(data)
                article_data = article.to_dict()
                return article_data
        except Error as e:
            # log error
            raise e
    def delete_article(self, article_id):

        with self._database_engine.new_session() as session:
            article_dao = ArticleDAO(session)
            article = article_dao.get(article_id)
            article_dao.delete(article)
 def get_article(self, article_id):
     with self._database_engine.new_session() as session:
         article = ArticleDAO(session).get(article_id)
         article_data = article.to_dict()
     return article_data
 def list_articles(self):
     with self._database_engine.new_session() as session:
         articles = ArticleDAO(session).get_all()
         articles_data = [member.to_dict() for member in articles]
     return articles_data