modelstore/App/Crud/CategoryCrud.py

81 lines
2.4 KiB
Python

from sqlalchemy.orm import Session
from sqlalchemy.exc import IntegrityError
from App.Model import RatingConfigModel as Model
from App.Schema import CategorySchema as Schema
from Utils.UniqueCoder.MysqlColumnIDUtils import set_next_id
def create_major_category(db: Session, schema: Schema.CreateMajorCategoryReqBody):
item = Model.ScoreCardMajorCategory(**schema.dict())
item.id = set_next_id(db=db, num_len=5, prefix="M_CATEGORY_", model=Model.ScoreCardMajorCategory)
db.add(item)
db.commit()
return True
def delete_major_category(db: Session, schema: Schema.DeleteMajorCategoryReqBody):
try:
db.query(Model.ScoreCardMajorCategory).filter_by(id=schema.id).delete()
db.commit()
return True
except IntegrityError:
return False
def edit_major_category(db: Session, _id: str, schema: Schema.EditMajorCategoryReqBody):
item = schema.del_null_value()
if not item:
return False
db.query(Model.ScoreCardMajorCategory).filter_by(id=_id).update(item)
db.commit()
return True
def get_major_category_by_id(db: Session, _id: str):
item = db.query(Model.ScoreCardMajorCategory).filter_by(id=_id).first()
return item
def get_major_category_by_name(db: Session, name: str):
item = db.query(Model.ScoreCardMajorCategory).filter_by(name=name).first()
return item
def list_major_category(db: Session):
items = db.query(Model.ScoreCardMajorCategory).all()
return [item.dict() for item in items]
def create_sub_category(db: Session, schema: Schema.CreateSubCategoryReqBody):
item = Model.ScoreCardSubCategory(**schema.dict())
item.id = set_next_id(db=db, num_len=5, prefix="S_CATEGORY_", model=Model.ScoreCardSubCategory)
db.add(item)
db.commit()
return True
def delete_sub_category(db: Session, _id: str):
db.query(Model.ScoreCardSubCategory).filter_by(id=_id).delete()
db.commit()
return True
def edit_sub_category(db: Session, _id: str, schema: Schema.EditSubCategoryReqBody):
item = schema.del_null_value()
if not item:
return False
db.query(Model.ScoreCardSubCategory).filter_by(id=_id).update(item)
db.commit()
return True
def get_sub_category_by_id(db: Session, _id: str):
item = db.query(Model.ScoreCardSubCategory).filter_by(id=_id).first()
return item
def get_sub_category_by_name(db: Session, name: str):
item = db.query(Model.ScoreCardSubCategory).filter_by(name=name).first()
return item