service

package
v0.2.3-alpha4 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2022 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")

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

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) (string, error)
	ActiveShares(ctx context.Context, account Account) ([]string, error)
	IsShared(ctx context.Context, account Account, shareCode ShareCode) error
	Revoke(ctx context.Context, account Account, 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
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.

Jump to

Keyboard shortcuts

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