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))
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()
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))