usecase

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2020 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewVersionCompatQueryResult

func NewVersionCompatQueryResult(config VersionCompatQueryResultConfig) *versionCompatQueryResult

Types

type AccessToken

type AccessToken interface {
	GenerateAccessToken(claims *daemon.AccessTokenClaims) ([]byte, error)
	VerifyAccessToken(token []byte) (*daemon.AccessTokenClaims, error)
	EvictAccessToken(token []byte) error
}

type AliOssAdapter

type AliOssAdapter interface {
	SignFetchURL(key []byte) ([]byte, error)
	Upload(stream io.Reader) ([]byte, error)
}

type Branch

type Branch interface {
	CreateBranch(branchName []byte) (*daemon.Branch, error)
	GetBranch(branchId []byte) (*daemon.Branch, error)
	DeleteBranch(branchId []byte) error
	GetBranchEncToken(branchId []byte) ([]byte, error)
}

type CtorConfig

type CtorConfig struct {
	DomainAdapter
	AliOssAdapter
	log.Logger
}

type DomainAdapter

type DomainAdapter interface {
	Branch(branchId []byte) (*daemon.Branch, error)
	CreateBranch(branch *daemon.Branch) error
	DeleteBranch(branchId []byte) error
	IsBranchAvailable(branchId []byte) bool
	IsBranchNameExisted(branchName []byte) (bool, error)

	Env(envId []byte) (*daemon.Env, error)
	GetEnvsWithBranchId(branchId string) ([]*daemon.Env, error)
	CreateEnv(env *daemon.Env) error
	DeleteEnv(envId []byte) error
	IsEnvAvailable(envId []byte) bool
	IsEnvNameExisted(branchId, envName []byte) (bool, error)

	Version(envId, appVersion []byte) (*daemon.Version, error)
	VersionsWithEnvId(envId []byte) (daemon.VersionList, error)
	CreateVersion(version *daemon.Version) error
	IsVersionAvailable(envId, appVersion []byte) (bool, error)

	File(fileKey string) (*daemon.File, error)
	InsertFile(file *daemon.File) error
	IsFileKeyExisted(fileKey string) bool
}

type Env

type Env interface {
	CreateEnv(branchId, envId, envName, envEncToken []byte) (*daemon.Env, error)
	GetEnv(envId []byte) (*daemon.Env, error)
	DeleteEnv(envId []byte) error
	GetEnvEncToken(envId []byte) ([]byte, error)
	GetEnvsWithBranchId(branchId string) ([]*daemon.Env, error)
}

type EnvVersionCollection

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

func NewEnvVersionCollection

func NewEnvVersionCollection(config EnvVersionCollectionConfig) (*EnvVersionCollection, error)

func (*EnvVersionCollection) GetVersion

func (e *EnvVersionCollection) GetVersion(appVersion *semver.SemVer) (*daemon.Version, error)

func (*EnvVersionCollection) ListVersions

func (e *EnvVersionCollection) ListVersions() (daemon.VersionList, error)

func (*EnvVersionCollection) ReleaseVersion

func (e *EnvVersionCollection) ReleaseVersion(params VersionReleaseParams) error

func (*EnvVersionCollection) VersionStrictCompatQuery

func (e *EnvVersionCollection) VersionStrictCompatQuery(appVersion *semver.SemVer) (VersionCompatQueryResult, error)

type EnvVersionCollectionConfig

type EnvVersionCollectionConfig struct {
	EnvId         []byte
	DomainAdapter DomainAdapter
}

type File

type File interface {
	GetSource(key string) (*daemon.File, error)
	InsertSource(value, desc, fileMD5 string, fileSize int64) (daemon.FileKey, error)
}

type Upload

type Upload interface {
	UploadToAliOss(stream io.Reader) (daemon.FileKey, error)
}

type UseCase

type UseCase interface {
	Branch
	Env
	Version
	File
	Upload
	AccessToken
}

func NewUseCase

func NewUseCase(configFn func(*CtorConfig)) UseCase

type Version

type Version interface {
	ReleaseVersion(params VersionReleaseParams) error
	GetVersion(envId, appVersion []byte) (*daemon.Version, error)
	ListVersions(envId []byte) (daemon.VersionList, error)
	VersionStrictCompatQuery(envId, appVersion []byte) (VersionCompatQueryResult, error)
}

type VersionCompatQueryResult

type VersionCompatQueryResult interface {
	AppVersion() []byte
	LatestAppVersion() []byte
	CanUpdateAppVersion() []byte
	MustUpdate() bool
}

type VersionCompatQueryResultConfig

type VersionCompatQueryResultConfig struct {
	AppVersion          *semver.SemVer
	LatestAppVersion    *semver.SemVer
	CanUpdateAppVersion *semver.SemVer
	MustUpdate          bool
}

type VersionReleaseParams

type VersionReleaseParams interface {
	EnvId() []byte
	AppVersion() []byte
	CompatAppVersion() []byte
	Changelog() []byte
	PackageFileKey() []byte
	MustUpdate() bool
}

Jump to

Keyboard shortcuts

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