Files
query-orchestration/internal/client/service.go
T
Michael McGuinness 04d8eaf52c Merged in feature/client (pull request #31)
Client Entity

* repolevel

* servicefunctions

* openapiclientget

* openapiupdate

* client

* vendor
2025-01-21 18:24:14 +00:00

64 lines
981 B
Go

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,
}
}