47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
from sqlalchemy.orm import Session
|
|
from sqlalchemy import asc
|
|
from typing import List
|
|
|
|
from app.model.bussiness_model import ProjectImage as piModel
|
|
from app.model.schemas.project_image_schemas import ProjectImage, ProjectImagePager
|
|
from app.db.page_util import get_pager
|
|
|
|
|
|
def get_image_pager(image: ProjectImagePager, session: Session):
|
|
query = session.query(piModel).filter(piModel.project_id == image.project_id).order_by(asc(piModel.id))
|
|
pager = get_pager(query, image.pagerNum, image.pagerSize)
|
|
pager.data = [ProjectImage.from_orm(image) for image in pager.data]
|
|
return pager
|
|
|
|
|
|
def get_image_list(project_id: int, session: Session):
|
|
query = session.query(piModel).filter(piModel.project_id == project_id).order_by(asc(piModel.id))
|
|
image_list = [ProjectImage.from_orm(image).dict() for image in query.all()]
|
|
return image_list
|
|
|
|
|
|
def get_images(project_id: int, session: Session):
|
|
query = session.query(piModel).filter(piModel.project_id == project_id).order_by(asc(piModel.id))
|
|
return query.all()
|
|
|
|
|
|
def add_image(image: ProjectImage, session: Session):
|
|
session.add(image)
|
|
session.commit()
|
|
return image
|
|
|
|
|
|
def add_image_batch(images: List[ProjectImage], session: Session):
|
|
session.add_all(images)
|
|
session.commit()
|
|
|
|
|
|
def del_image(image_id: str, session: Session):
|
|
row_del = session.query(piModel).filter_by(id=image_id).delete()
|
|
session.commit()
|
|
return row_del
|
|
|
|
|
|
|
|
|