示例#1
0
    def insert_data(self, data):
        """
        Will handle inserting data into the database
        """
        try:
            # Check if book is in database, if so update else create
            try:
                book = db_session.query(Book).filter(Book.book_id == data.get('book_id')).one()
            except NoResultFound:
                book = Book()

            book.title = data.get('title')
            book.subtitle = data.get('subtitle')
            book.author = data.get('author')
            book.year = data.get('year')
            book.pages = data.get('pages')
            book.language = data.get('language')
            book.publisher = data.get('publisher')
            book.isbn = data.get('isbn')
            book.format = data.get('format')
            book.description = data.get('description')
            book.file_source = data.get('file_source')
            book.file_cover_source = data.get('file_cover_source')
            book.file_location = data.get('file_location')
            book.file_cover_location = data.get('file_cover_location')
            book.book_id = data.get('book_id')
            book.time_collected = data.get('time_collected')

            db_session.add(book)
            db_session.commit()
            # self.track_stat('rows_added_to_db', rows_affected)

        except Exception:
            db_session.rollback()
            logger.exception("Error adding to db {data}".format(data=data))
示例#2
0
def addBook():
    result = ResponseData(RET.OK)
    book_name = request.form.get('book_name')
    channel_name = request.form.get('channel_name')
    channel_url = request.form.get('channel_url')
    author_name = request.form.get('author_name')
    cate_id = request.form.get('cate_id')
    cate_name = request.form.get('cate_name')
    intro = request.form.get('intro')
    word_count = request.form.get('word_count')
    chapter_num = request.form.get('chapter_num')
    cover = request.form.get('cover')
    book_id = request.form.get('book_id')
    if not book_id:
        if not book_name or not author_name or not cate_id or not cate_name:
            result.code = RET.NOPARAMS
            return result.to_dict()
    if book_name:
        book = Book.query.filter_by(book_name=book_name).first()
        if book:
            result.data = dict(book)
            return result.to_dict()
    data = {
        'book_name': book_name,
        'channel_name': channel_name,
        'channel_url': channel_url,
        'author_name': author_name,
        'cate_id': cate_id,
        'cate_name': cate_name,
        'intro': intro,
        'word_count': word_count,
        'chapter_num': chapter_num,
        'cover': cover
    }
    book = Book(data)
    if book_id:
        book.book_id = int(book_id)
    try:
        if book_id:
            old_book = Book.query.get(book_id)
            for key in book.keys():
                if book[key] is not None and key != 'book_id':
                    if hasattr(old_book, key):
                        setattr(old_book, key, book[key])
            result.data = dict(old_book)
        else:
            db.session.add(book)
            db.session.flush()
            result.data = dict(book)
        db.session.commit()
        return result.to_dict()
    except Exception as e:
        current_app.logger.error(e)
        result.code = RET.DBERR
        return result.to_dict()
示例#3
0
    def insert_data(self, data):
        """
        Will handle inserting data into the database
        """
        try:
            # Check if book is in database, if so update else create
            try:
                book = db_session.query(Book).filter(
                    Book.book_id == data.get('book_id')).one()
            except NoResultFound:
                book = Book()

            book.title = data.get('title')
            book.subtitle = data.get('subtitle')
            book.author = data.get('author')
            book.year = data.get('year')
            book.pages = data.get('pages')
            book.language = data.get('language')
            book.publisher = data.get('publisher')
            book.isbn = data.get('isbn')
            book.format = data.get('format')
            book.description = data.get('description')
            book.file_source = data.get('file_source')
            book.file_cover_source = data.get('file_cover_source')
            book.file_location = data.get('file_location')
            book.file_cover_location = data.get('file_cover_location')
            book.book_id = data.get('book_id')
            book.time_collected = data.get('time_collected')

            db_session.add(book)
            db_session.commit()
            # self.track_stat('rows_added_to_db', rows_affected)

        except Exception:
            db_session.rollback()
            logger.exception("Error adding to db {data}".format(data=data))