package client import ( "errors" "fmt" "queryorchestration/internal/database" "regexp" "strings" "github.com/google/uuid" ) type Client struct { ID uuid.UUID Name string CanSync bool } func (c *Client) getCanSyncUpdate(n *bool) bool { if n == nil { return c.CanSync } return *n } func (c *Client) getNameUpdate(n *string) (string, error) { if n == nil { return c.Name, nil } return normalizeName(*n) } func normalizeName(name string) (string, error) { name = strings.TrimSpace(name) if name == "" { return "", errors.New("name required") } spacere := regexp.MustCompile(`\s+`) name = spacere.ReplaceAllString(name, " ") reg := `^[a-zA-Z0-9\_\- ]+$` alphanumeric := regexp.MustCompile(reg) if !alphanumeric.MatchString(name) { return "", fmt.Errorf("name must have regex: %s", reg) } return name, nil } type Service struct { db *database.Connection } func New(db *database.Connection) *Service { return &Service{ db, } }