コード例 #1
0
ファイル: facade.py プロジェクト: promua/library_app
 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())
コード例 #2
0
ファイル: facade.py プロジェクト: promua/library_app
 def create_book(self, book_dto):
     book = BookConverter.from_dto(book_dto).to_mo()
     
     authors = self.session.query(Author).filter(
         Author.name.in_(map(lambda a: a.name, book_dto.authors))).all()
     
     book.authors = authors
         
     self.session.add(book)
     self.session.commit()
     
     return
コード例 #3
0
ファイル: facade.py プロジェクト: promua/library_app
 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()