Skip to content
Snippets Groups Projects
BookConnector.py 682 B
Newer Older
from ..Connector import Connector
from ..models.Book import Book
from sqlalchemy.exc import IntegrityError
import logging

class BookConnector(Connector):
    def save_book(self, item):
        session = self.get_session()

        book = Book()
        book.update(item)
        book.image_path = item['images'][0]['path']

        try:
            session.add(book)
            session.commit()
        except IntegrityError:
            logging.debug('Duplicate exist')
            session.rollback()
            session.query(Book).filter(Book.upc == book.upc).update({k:v for k, v in book.__dict__.items() if k in book.__table__.columns.keys()})
            session.commit()