Skip to content
Snippets Groups Projects
ImageBinding.py 1.13 KiB
Newer Older
  • Learn to ignore specific revisions
  • import logging as log
    from sqlalchemy.orm import Session
    from typing import Optional
    
    
    
    
    Alfred Ashur Oshana's avatar
    Alfred Ashur Oshana committed
    from pilab.schemas.ImageBinding import ImageBindingType
    
    from pilab.events import meta
    
    log.getLogger('sqlalchemy.engine').setLevel(log.WARNING)
    
    class ImageBinding(object):
        @staticmethod
        def create(db: Session, image_id: int, user_data_id: Optional[int], pi_id: int):
            db_binding = ImageBindingType(
                image_id=image_id,
                user_data_id=user_data_id,
                pi_id=pi_id,
            )
            db.add(db_binding)
            db.flush()
            return meta.ImageBinding(**vars(db_binding))
    
        @staticmethod
        def update(db: Session):
            return
    
        @staticmethod
        def delete(db: Session, pi_id: int):
            db_binding = db.query(ImageBindingType).filter(
                ImageBindingType.pi_id == pi_id
            ).first()
            if db_binding:
                db.delete(db_binding)
            db.flush()
    
        @staticmethod
        def get(db: Session, pi_id: int):
            db_binding = db.query(ImageBindingType).filter(ImageBindingType.pi_id == pi_id).first()
            return meta.ImageBinding(**vars(db_binding)) if db_binding else None