def update_book_info(cls, book: Book, info_to_update: Dict[str, str]): author_data = {} for author in info_to_update['author']: temp = author.split(' ') author_data['name'], author_data['surname'] = temp[0], temp[-1] author = cls.add_author_to_db(author_data) book.author.add(author) if info_to_update.get('genre'): book.genre = cls.add_or_get_genre(info_to_update.get('genre')) book.description = info_to_update.get('annotation') book.save()
def add(db_session, data, username, **kwargs): logger.debug(LogMsg.START, username) genre = data.get('genre', []) if genre and len(genre) > 0: check_enums(genre, Genre) logger.debug(LogMsg.ENUM_CHECK, {'genre': genre}) model_instance = Book() populate_basic_data(model_instance, username, data.get('tags')) logger.debug(LogMsg.POPULATING_BASIC_DATA) model_instance.title = data.get('title') model_instance.edition = data.get('edition') model_instance.pub_year = data.get('pub_year') model_instance.type = data.get('type') model_instance.genre = genre model_instance.images = data.get('images') model_instance.files = data.get('files') model_instance.language = data.get('language') model_instance.rate = data.get('rate') model_instance.description = data.get('description') model_instance.pages = data.get('pages') model_instance.duration = data.get('duration') model_instance.size = data.get('size') model_instance.isben = data.get('isben') model_instance.description = data.get('description') model_instance.from_editor = data.get('from_editor') model_instance.press = data.get('press') logger.debug(LogMsg.PERMISSION_CHECK, username) validate_permissions_and_access(username, db_session, 'BOOK_ADD', model=model_instance) logger.debug(LogMsg.PERMISSION_VERIFIED) db_session.add(model_instance) logger.debug(LogMsg.DB_ADD) add_connector(model_instance.id, data.get('unique_code'), db_session) logger.debug(LogMsg.UNIQUE_CONNECTOR_ADDED, { 'book_id': model_instance.id, 'unique_constraint': data.get('unique_code') }) price = data.get('price', None) if price: add_price_internal(price, model_instance.id, db_session, username) logger.info(LogMsg.END) return model_instance
def createBook(book): b = Book(name=book['name'], description=book['description'], price=book['price'], years_to_create=book['years_to_create'], count_sheets=book['count_sheets'], ISBN=book['ISBN'], mass=book['mass'], rating=book['rating'], stock=book['stock'], available=book['available']) b.genre = Genre.objects.get(name=book[''])