Files
query-orchestration/internal/client/service.go
T
Michael McGuinness 7ce7c9df4d Merged in feature/ecr (pull request #161)
Feature/ecr

* nosave

* repo

* awscli

* unzip

* ignore

* moreram

* 14k

* ref

* deployment

* 12k

* uselocal

* go

* dockercomd

* reorder

* iamgename

* installs

* tart

* cli

* clideps

* y

* dockerce

* nodock

* multi

* rmecr

* dev
2025-06-03 13:52:10 +00:00

74 lines
1.2 KiB
Go

package client
import (
"fmt"
"regexp"
"strings"
"queryorchestration/internal/serviceconfig"
)
type Client struct {
ID string
Name string
CanSync bool
}
func (c *Client) NormalizeCanSyncUpdate(canSync **bool) {
if canSync == nil || *canSync == nil {
return
}
if c.CanSync == **canSync {
*canSync = nil
}
}
func (c *Client) NormalizeNameUpdate(name **string) error {
if name == nil || *name == nil {
return nil
}
err := normalizeName(*name)
if err != nil {
return err
}
if c.Name == **name {
*name = nil
}
return nil
}
func normalizeName(name *string) error {
if name == nil {
return nil
}
normalizedName := strings.TrimSpace(*name)
spaceRegex := regexp.MustCompile(`\s+`)
normalizedName = spaceRegex.ReplaceAllString(normalizedName, " ")
validNameRegex := `^[a-zA-Z0-9\_\- \(\)\.\,]+$`
alphanumeric := regexp.MustCompile(validNameRegex)
if !alphanumeric.MatchString(normalizedName) {
return fmt.Errorf(`"%s" must have regex: %s`, normalizedName, validNameRegex)
}
*name = normalizedName
return nil
}
type Service struct {
cfg serviceconfig.ConfigProvider
}
func New(cfg serviceconfig.ConfigProvider) *Service {
return &Service{
cfg,
}
}