81 lines
2.4 KiB
Python
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
|