settings

package
v1.19.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2023 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var LegacyLongDecode = func(id string) string {
	key := LegacyObjIDDecode(id)
	if len(key) == 0 {
		return key
	}
	uid, err := uuid.Parse(key)
	if err != nil {
		return err.Error()
	}
	result, err := UUIDToLong(uid)
	if err != nil {
		return err.Error()
	}
	return fmt.Sprintf("%v", result)
}
View Source
var LegacyObjIDDecode = func(id string) string {
	objID := &ObjectID{ID: id}
	if e := objID.Decode(); e == nil && len(objID.Key) > 0 {
		return objID.Key
	}
	return ""
}

Functions

func ClearLegacyID

func ClearLegacyID(v any) *string

func Clone

func Clone[T Settings](v T) (T, error)

func FillDemoValues

func FillDemoValues(settings Settings) []string

func FromJSON

func FromJSON[T Settings](data []byte, v T) error

func GetFlawedReasons

func GetFlawedReasons(settings any) []string

func GetLegacyID

func GetLegacyID(v any) *string

func GetScope added in v1.19.0

func GetScope(settings Settings) string

func IsValidUUID

func IsValidUUID(u string) bool

func JoinID

func JoinID(id string, context string) string

func LegacyID

func LegacyID(id string) string

func Name

func Name(v any) string

func NewSettings

func NewSettings[T Settings](service RService[T]) T

func Path

func Path(s string) func(args ...string) string

func ReadUTF

func ReadUTF(reader io.Reader) (string, error)

func SetID

func SetID(settings Settings, id string)

func SetLegacyID

func SetLegacyID(id string, converter func(string) string, v any)

func SetScope added in v1.19.0

func SetScope(settings Settings, scope string)

func SplitID

func SplitID(id string) (string, string, bool)

func SupportsFlawedReasons

func SupportsFlawedReasons(settings any) bool

func ToJSON

func ToJSON[T Settings](v T) ([]byte, error)

func UUIDToLong

func UUIDToLong(uid uuid.UUID) (int64, error)

func Validate

func Validate(settings Settings) []string

Types

type CRUDService

type CRUDService[T Settings] interface {
	List() (Stubs, error)
	Get(id string, v T) error
	SchemaID() string
	Create(v T) (*Stub, error)
	Update(id string, v T) error
	Delete(id string) error
}

func NewCRUDService

func NewCRUDService[T Settings](credentials *Credentials, schemaID string, options *ServiceOptions[T]) CRUDService[T]

type Credentials

type Credentials struct {
	URL   string
	Token string
	IAM   struct {
		ClientID     string
		AccountID    string
		ClientSecret string
	}
}

func CreateCredentials

func CreateCredentials() (*Credentials, error)

type DemoSettings

type DemoSettings interface {
	FillDemoValues() []string
}

type ErrorSettings

type ErrorSettings struct {
	Error error
}

func (*ErrorSettings) FillDemoValues

func (me *ErrorSettings) FillDemoValues() []string

func (*ErrorSettings) MarshalHCL

func (me *ErrorSettings) MarshalHCL(properties hcl.Properties) error

func (*ErrorSettings) Schema

func (me *ErrorSettings) Schema() map[string]*schema.Schema

func (*ErrorSettings) UnmarshalHCL

func (me *ErrorSettings) UnmarshalHCL(decoder hcl.Decoder) error

type GenericCRUDService

type GenericCRUDService[T Settings] struct {
	Service CRUDService[T]
}

func (*GenericCRUDService[T]) Create

func (me *GenericCRUDService[T]) Create(v Settings) (*Stub, error)

func (*GenericCRUDService[T]) Delete

func (me *GenericCRUDService[T]) Delete(id string) error

func (*GenericCRUDService[T]) Get

func (me *GenericCRUDService[T]) Get(id string, v Settings) error

func (*GenericCRUDService[T]) List

func (me *GenericCRUDService[T]) List() (Stubs, error)

func (*GenericCRUDService[T]) NoCache

func (me *GenericCRUDService[T]) NoCache() bool

func (*GenericCRUDService[T]) SchemaID

func (me *GenericCRUDService[T]) SchemaID() string

func (*GenericCRUDService[T]) Update

func (me *GenericCRUDService[T]) Update(id string, v Settings) error

func (*GenericCRUDService[T]) Validate

func (me *GenericCRUDService[T]) Validate(v Settings) error

type GenericRService

type GenericRService[T Settings] struct {
	Service RService[T]
}

func (*GenericRService[T]) Get

func (me *GenericRService[T]) Get(id string, v Settings) error

func (*GenericRService[T]) List

func (me *GenericRService[T]) List() (Stubs, error)

func (*GenericRService[T]) NoCache

func (me *GenericRService[T]) NoCache() bool

func (*GenericRService[T]) SchemaID

func (me *GenericRService[T]) SchemaID() string

type LegacyIDAware

type LegacyIDAware interface {
	LegacyID() func(id string) string
}

type Loader

type Loader interface {
	Load(data []byte) error
}

type NoCacheService

type NoCacheService interface {
	NoCache() bool
}

type ObjectID

type ObjectID struct {
	Key   string `json:"key"`
	Scope struct {
		Class string `json:"class"`
		ID    string `json:"id"`
	} `json:"scope"`
	SchemaID string `json:"schemaID"`
	ID       string `json:"-"`
}

func (*ObjectID) Decode

func (me *ObjectID) Decode() error

func (*ObjectID) String

func (me *ObjectID) String() string

type RService

type RService[T Settings] interface {
	List() (Stubs, error)
	Get(id string, v T) error
	SchemaID() string
}

type RecordStubs

type RecordStubs interface {
	ToStubs() Stubs
}

type RegexValidator

type RegexValidator interface {
	Validate() []string
}

type ScopeAware added in v1.19.0

type ScopeAware interface {
	SetScope(string)
	GetScope() string
}

type Service

type Service[T Settings] interface {
	List() (Stubs, error)
	Get(id string, v T) error
	Create(v T) (*Stub, error)
	Update(id string, v T) error
	Delete(id string) error
	Validate(v T) error
	SchemaID() string
}

func StaticService

func StaticService[T Settings](credentials *Credentials, schemaID string, url string, stub Stub) Service[T]

type ServiceOptions

type ServiceOptions[T Settings] struct {
	Get            func(args ...string) string
	List           func(args ...string) string
	CreateURL      func(v T) string
	ValidateURL    func(v T) string
	UpdateURL      func(id string, v T) string
	DeleteURL      func(id string) string
	Stubs          RecordStubs
	CompleteGet    func(client rest.Client, id string, v T) error
	CreateRetry    func(v T, err error) T
	DeleteRetry    func(id string, err error) (bool, error)
	CreateConfirm  int
	OnChanged      func(rest.Client, string, T) error
	OnBeforeUpdate func(id string, v T) error
	HasNoValidator bool
	Name           func(id string, v T) (string, error)
	HijackOnCreate func(err error, service RService[T], v T) (*Stub, error)
	Lock           func()
	Unlock         func()
}

func DefaultServiceOptions

func DefaultServiceOptions[T Settings](basePath string) *ServiceOptions[T]

func (*ServiceOptions[T]) Hijack

func (me *ServiceOptions[T]) Hijack(fn func(err error, service RService[T], v T) (*Stub, error)) *ServiceOptions[T]

func (*ServiceOptions[T]) NoValidator

func (me *ServiceOptions[T]) NoValidator() *ServiceOptions[T]

func (*ServiceOptions[T]) WithCreateRetry

func (me *ServiceOptions[T]) WithCreateRetry(fn func(v T, err error) T) *ServiceOptions[T]

func (*ServiceOptions[T]) WithDeleteRetry

func (me *ServiceOptions[T]) WithDeleteRetry(deleteRetry func(id string, err error) (bool, error)) *ServiceOptions[T]

func (*ServiceOptions[T]) WithMutex

func (me *ServiceOptions[T]) WithMutex(lock func(), unlock func()) *ServiceOptions[T]

func (*ServiceOptions[T]) WithOnBeforeUpdate

func (me *ServiceOptions[T]) WithOnBeforeUpdate(fn func(id string, v T) error) *ServiceOptions[T]

func (*ServiceOptions[T]) WithOnChanged

func (me *ServiceOptions[T]) WithOnChanged(onChanged func(rest.Client, string, T) error) *ServiceOptions[T]

func (*ServiceOptions[T]) WithStubs

func (me *ServiceOptions[T]) WithStubs(stubs RecordStubs) *ServiceOptions[T]

type Settings

type Settings interface {
	MarshalHCL(hcl.Properties) error
	UnmarshalHCL(hcl.Decoder) error
	Schema() map[string]*schema.Schema
}

type Storer

type Storer interface {
	Store() ([]byte, error)
}

type Stub

type Stub struct {
	ID       string  `json:"id"`
	Name     string  `json:"name"`
	EntityID string  `json:"entityId,omitempty"`
	Value    any     `json:"-"`
	LegacyID *string `json:"legacyID,omitempty"`
}

func FindByName

func FindByName[T Settings](service RService[T], name string) (stub *Stub, err error)

type StubList

type StubList struct {
	Values []*Stub `json:"values"`
}

func (*StubList) ToStubs

func (me *StubList) ToStubs() Stubs

type Stubs

type Stubs []*Stub

func (Stubs) Sort added in v1.18.1

func (me Stubs) Sort() Stubs

func (*Stubs) ToStubs

func (me *Stubs) ToStubs() Stubs

type Validator

type Validator[T Settings] interface {
	Validate(v T) error
}

Directories

Path Synopsis
services

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL