def search_books(self, expression): query = self.session.query(Book).order_by(Book.name) if expression: query = query.filter(or_( Book.name.like("%" + expression + "%"), Book.authors.any(Author.name.like("%" + expression + "%")))) return map(lambda book: BookConverter.from_mo(book).to_dto(), query.all())
def get_book(self, book_dto): query = self.session.query(Book) if book_dto.id: query = query.filter(Book.id == book_dto.id) if book_dto.name: query = query.filter(Book.name == book_dto.name) book = query.one() return BookConverter.from_mo(book).to_dto()