def set_default_category(category: model.TagCategory) -> None: assert category old_category = try_get_default_category(lock=True) if old_category: db.session.refresh(old_category) old_category.default = False db.session.refresh(category) category.default = True cache.remove(DEFAULT_CATEGORY_NAME_CACHE_KEY)
def update_category_color(category: model.TagCategory, color: str) -> None: assert category if not color: raise InvalidTagCategoryColorError("Color cannot be empty.") if not re.match(r"^#?[0-9a-z]+$", color): raise InvalidTagCategoryColorError("Invalid color.") if util.value_exceeds_column_size(color, model.TagCategory.color): raise InvalidTagCategoryColorError("Color is too long.") category.color = color
def update_category_color(category: model.TagCategory, color: str) -> None: assert category if not color: raise InvalidTagCategoryColorError('색상은 빈 값일 수 없습니다.') if not re.match(r'^#?[0-9A-Za-z]+$', color): raise InvalidTagCategoryColorError('잘못된 색상.') if util.value_exceeds_column_size(color, model.TagCategory.color): raise InvalidTagCategoryColorError('색상이 너무 깁니다.') category.color = color
def update_category_name(category: model.TagCategory, name: str) -> None: assert category if not name: raise InvalidTagCategoryNameError('이름은 빈 값일 수 없습니다.') expr = sa.func.lower(model.TagCategory.name) == name.lower() if category.tag_category_id: expr = expr & (model.TagCategory.tag_category_id != category.tag_category_id) already_exists = (db.session.query(model.TagCategory).filter(expr).count() > 0) if already_exists: raise TagCategoryAlreadyExistsError('동일한 이름의 카테고리자 존재합니다.') if util.value_exceeds_column_size(name, model.TagCategory.name): raise InvalidTagCategoryNameError('이름이 너무 깁니다.') _verify_name_validity(name) category.name = name cache.remove(DEFAULT_CATEGORY_NAME_CACHE_KEY)
def update_category_name(category: model.TagCategory, name: str) -> None: assert category if not name: raise InvalidTagCategoryNameError("Name cannot be empty.") expr = sa.func.lower(model.TagCategory.name) == name.lower() if category.tag_category_id: expr = expr & (model.TagCategory.tag_category_id != category.tag_category_id) already_exists = (db.session.query(model.TagCategory).filter(expr).count() > 0) if already_exists: raise TagCategoryAlreadyExistsError( "A category with this name already exists.") if util.value_exceeds_column_size(name, model.TagCategory.name): raise InvalidTagCategoryNameError("Name is too long.") _verify_name_validity(name) category.name = name cache.remove(DEFAULT_CATEGORY_NAME_CACHE_KEY)
def update_category_order(category: model.TagCategory, order: int) -> None: assert category category.order = order