service

package
v0.1.7 Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2022 License: Apache-2.0 Imports: 5 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")
)
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
	HashedPass() string
}

type Accounts

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

	ActiveShares(ctx context.Context, username string) ([]string, error)
	IsShared(ctx context.Context, username string, share string) (bool, error)
	Revoke(ctx context.Context, username string, shareCode string) 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, hashedPass string) *BaseAccount

func (*BaseAccount) HashedPass added in v0.1.7

func (r *BaseAccount) HashedPass() string

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 DeviceFromID added in v0.1.7

func DeviceFromID(deviceId DeviceID) *BaseDevice

func (*BaseDevice) ID added in v0.1.7

func (r *BaseDevice) ID() DeviceID

type Device

type Device interface {
	ID() DeviceID
}

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 {
	FindByAccount(ctx context.Context, acc Account) ([]Device, error)
	FindByDeviceID(ctx context.Context, acc Account, deviceId DeviceID) (Device, error)
	Register(ctx context.Context, acc Account, deviceId DeviceID) (Device, 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
}

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