def create_one(self, new_book_details: dict): """ Adds new Book from dict with information passed from web form :param new_book_details: :return: """ response = {"flash_message": "", "book_url_title": ""} book = Book(new_book_details) create_book = self.create(book) if create_book is not None: response['flash_message'] = "Could Not Add book, Try Again" else: response['flash_message'] = f'{book.get_formatted_title()} added!' response['book_url_title'] = book.get_title_for_url() return response
def setUp(self): file = open('test/data/book.json') book_data = json.load(file) file.close() self.books = [] for book in book_data: self.books.append(Book(book))
def setUp(self): # Mock of Review Query review_json = open('test/data/book.json') self.books_from_json = json.load(review_json) review_json.close() self.books_object_list = [] self.books = ManageBooks() for book in self.books_from_json: self.books_object_list.append(Book(book))
def get_one_by_id(self, object_id: str): """ Queries Data Storage for Book based on attribute_name :param object_id: object_id :return: book: Book """ book = self.model.find_by_id(ObjectId(object_id)) if book: return Book(book)
def get_by_title(self, title: str): """ Queries Data Storage for Book based on attribute_name :param title: str :return: book: Book """ book = Book(self.model.find_by_field_name_and_value(title, 'title')) if book: return book
def create(self, book: Book): """ Wrapper method for Model :param book: Book :return: None """ create_book = self.model.create_one(book.get_dict()) if not create_book: return create_book
def update_details(self, book_id: str, new_book_details: dict): """ Push Update book Information to Mongo :param book_id: :param new_book_details: :return: response: dict {flash_message, book_title} """ response = {"flash_message": "", "book_title": ""} book = Book(new_book_details) create_book = self.update(ObjectId(book_id), book.get_dict()) if create_book is not None: response['flash_message'] = "Could Not Add book, Try Again" else: response[ 'flash_message'] = f'{book.get_formatted_title()} updated!' response['book_url_title'] = book.get_title_for_url() return response
def search(self, query: str): """ Wrap search call for Collection search Index for Book Title or Author (Based Mongo Search Index) :param query: str :return: list of books matching search query """ query_results = [] search_books_query_result = self.model.search(query) if search_books_query_result: for book in search_books_query_result: query_results.append(Book(book)) return query_results
def get_all(self): response = [] books = self.model.find_all() for book in books: response.append(Book(book)) return response