service

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Oct 11, 2023 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrAccountAlreadyExists = errors.New("account already exists")
	ErrAccountNotFound      = errors.New("account not found")
	ErrShareCodeInvalid     = errors.New("share code is invalid")
)
View Source
var (
	ErrWritingModuleFailed = errors.New("module write failed")
	ErrReadingModule       = errors.New("module read failed")
)
View Source
var ErrDeviceNotFound = errors.New("device not found")
View Source
var ErrNoMetadata = errors.New("no metadata found")

Functions

This section is empty.

Types

type Account

type Account interface {
	Username() string
	CreatedAt() time.Time
}

type Accounts

type Accounts interface {
	Find(ctx context.Context, username string) (Account, error)
	Create(ctx context.Context, username string) (Account, error)

	HealthCheck() HealthCheck
}

type BaseAccount added in v0.1.7

type BaseAccount struct {
	// contains filtered or unexported fields
}

func NewBaseAccount added in v0.1.7

func NewBaseAccount(username string, createdAt time.Time) *BaseAccount

func (*BaseAccount) CreatedAt added in v0.2.1

func (r *BaseAccount) CreatedAt() time.Time

func (*BaseAccount) Username added in v0.1.7

func (r *BaseAccount) Username() string

type BaseDevice added in v0.1.7

type BaseDevice struct {
	// contains filtered or unexported fields
}

func NewBaseDevice added in v0.2.0

func NewBaseDevice(deviceId DeviceID, hashedPass string) *BaseDevice

func (*BaseDevice) HashedPass added in v0.2.1

func (r *BaseDevice) HashedPass() string

func (*BaseDevice) ID added in v0.1.7

func (r *BaseDevice) ID() DeviceID

func (*BaseDevice) Verify added in v0.2.1

func (r *BaseDevice) Verify(password string) bool

type BaseMetadata added in v0.4.0

type BaseMetadata struct {
	ID         MetadataID `json:"id"         yaml:"id"`
	ModifiedAt time.Time  `json:"modifiedAt" yaml:"modifiedAt"`
}

func NewBaseMetadata added in v0.4.0

func NewBaseMetadata(id string, modifiedAt time.Time) *BaseMetadata

func (*BaseMetadata) GetID added in v0.4.0

func (r *BaseMetadata) GetID() MetadataID

func (*BaseMetadata) GetModifiedAt added in v0.4.0

func (r *BaseMetadata) GetModifiedAt() ModifiedAt

type Device

type Device interface {
	ID() DeviceID
	Verify(password string) bool
	HashedPass() string
}

type DeviceID added in v0.1.7

type DeviceID uuid.UUID

func (DeviceID) String added in v0.1.7

func (i DeviceID) String() string

func (DeviceID) UUID added in v0.1.7

func (i DeviceID) UUID() uuid.UUID

type Devices

type Devices interface {
	AddDevice(ctx context.Context, account Account, id DeviceID, password string) (Device, error)
	GetDevices(ctx context.Context, account Account) (map[DeviceID]Device, error)
	GetDevice(ctx context.Context, account Account, id DeviceID) (Device, error)
	DeleteDevice(ctx context.Context, account Account, id DeviceID) error

	HealthCheck() HealthCheck
}

type Health

type Health interface {
	Check(ctx context.Context) HealthAggregation
}

func HealthAggregator

func HealthAggregator(healthChecks []HealthCheck) Health

type HealthAggregation

type HealthAggregation struct {
	Health     HealthResult                 `yaml:"health"`
	Components []HealthAggregationComponent `yaml:"components"`
}

type HealthAggregationComponent

type HealthAggregationComponent struct {
	Name   string       `yaml:"name"`
	Health HealthResult `yaml:"health"`
}

type HealthCheck

type HealthCheck func(ctx context.Context) (string, bool)

type HealthResult

type HealthResult string
const (
	HealthUp   HealthResult = "Up"
	HealthDown HealthResult = "Down"
)

func HealthResultFromBool

func HealthResultFromBool(healthUp bool) HealthResult

func (HealthResult) ToHTTPStatusCode

func (r HealthResult) ToHTTPStatusCode() int

type Metadata added in v0.4.0

type Metadata interface {
	GetID() MetadataID
	GetModifiedAt() ModifiedAt
}

type MetadataID added in v0.4.0

type MetadataID string

type MetadataProvider added in v0.4.0

type MetadataProvider interface {
	Get(ctx context.Context, id MetadataID) (Metadata, error)
	Set(ctx context.Context, meta Metadata) error
}

type ModifiedAt added in v0.4.0

type ModifiedAt time.Time

type Module

type Module interface {
	Raw() io.Reader
	Size() int
}

type Modules

type Modules interface {
	Set(ctx context.Context, name string, module Module) error
	Get(ctx context.Context, name string) (Module, error)
	HealthCheck() HealthCheck
	DeleteByPattern(ctx context.Context, pattern string) error
}

type ShareCode added in v0.2.1

type ShareCode string

func (ShareCode) String added in v0.2.1

func (c ShareCode) String() string

type Sharing added in v0.2.1

type Sharing interface {
	Share(ctx context.Context, account Account) (ShareCode, error)
	Shared(ctx context.Context, shareCode ShareCode) (Account, error)
	Revoke(ctx context.Context, shareCode ShareCode) error
}

type UsernameGenerationStrategy added in v0.2.0

type UsernameGenerationStrategy string
const UUIDUsernameGeneration UsernameGenerationStrategy = "uuid"

type UsernameGenerator added in v0.2.0

type UsernameGenerator interface {
	Generate() (string, error)
}

func NewUsernameGenerator added in v0.2.0

func NewUsernameGenerator(_ UsernameGenerationStrategy) (UsernameGenerator, error)

Directories

Path Synopsis
Code generated by MockGen.
Code generated by MockGen.
mock
Code generated by MockGen.
Code generated by MockGen.

Jump to

Keyboard shortcuts

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