chore: 更新依赖、配置和代码生成
主要更新: - 更新 go.mod/go.sum 依赖 - 重新生成 Ent ORM 代码 - 更新 Wire 依赖注入配置 - 添加 docker-compose.override.yml 到 .gitignore - 更新 README 文档(Simple Mode 说明和已知问题) - 清理调试日志 - 其他代码优化和格式修复
This commit is contained in:
@@ -56,6 +56,10 @@ func (s *UserAttributeService) CreateDefinition(ctx context.Context, input Creat
|
||||
Enabled: input.Enabled,
|
||||
}
|
||||
|
||||
if err := validateDefinitionPattern(def); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err := s.defRepo.Create(ctx, def); err != nil {
|
||||
return nil, fmt.Errorf("create definition: %w", err)
|
||||
}
|
||||
@@ -108,6 +112,10 @@ func (s *UserAttributeService) UpdateDefinition(ctx context.Context, id int64, i
|
||||
def.Enabled = *input.Enabled
|
||||
}
|
||||
|
||||
if err := validateDefinitionPattern(def); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err := s.defRepo.Update(ctx, def); err != nil {
|
||||
return nil, fmt.Errorf("update definition: %w", err)
|
||||
}
|
||||
@@ -231,7 +239,10 @@ func (s *UserAttributeService) validateValue(def *UserAttributeDefinition, value
|
||||
// Pattern validation
|
||||
if v.Pattern != nil && *v.Pattern != "" && value != "" {
|
||||
re, err := regexp.Compile(*v.Pattern)
|
||||
if err == nil && !re.MatchString(value) {
|
||||
if err != nil {
|
||||
return validationError(def.Name + " has an invalid pattern")
|
||||
}
|
||||
if !re.MatchString(value) {
|
||||
msg := def.Name + " format is invalid"
|
||||
if v.Message != nil && *v.Message != "" {
|
||||
msg = *v.Message
|
||||
@@ -293,3 +304,20 @@ func isValidAttributeType(t UserAttributeType) bool {
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func validateDefinitionPattern(def *UserAttributeDefinition) error {
|
||||
if def == nil {
|
||||
return nil
|
||||
}
|
||||
if def.Validation.Pattern == nil {
|
||||
return nil
|
||||
}
|
||||
pattern := strings.TrimSpace(*def.Validation.Pattern)
|
||||
if pattern == "" {
|
||||
return nil
|
||||
}
|
||||
if _, err := regexp.Compile(pattern); err != nil {
|
||||
return infraerrors.BadRequest("INVALID_ATTRIBUTE_PATTERN", fmt.Sprintf("invalid pattern for %s: %v", def.Name, err))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user