usecase

package
v0.0.0-...-998107f Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2019 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ApplyMatchInput

type ApplyMatchInput interface {
	Scores() entity.ScoreCollection
	OutcomeAt() time.Time
}

ApplyMatchInput はApplyMatch usecase のInputポート

type ApplyMatchOutput

type ApplyMatchOutput interface {
	SetParticipants(entity.RatingResourceCollection)
}

ApplyMatchInput はApplyMatch usecase のOutputポート

type CoreUsecase

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

CoreUsecase はアプリケーションの振る舞いを記述する。

func New

func New(config *entity.Config, repo RatingResourceRepository, lifeCycle LifeCycle) *CoreUsecase

New はCoreUsecaseのコンストラクタ

func (*CoreUsecase) ApplyMatch

func (u *CoreUsecase) ApplyMatch(ctx context.Context, input ApplyMatchInput, output ApplyMatchOutput) (err error)

ApplyMatch はRatingResouce同士の対戦をそれぞれのRatingに反映します。

func (*CoreUsecase) CreatePlayer

func (u *CoreUsecase) CreatePlayer(ctx context.Context, input CreatePlayerInput, output CreatePlayerOutput) (err error)

CreatePlayer はPlayerというRatingResouceを追加します。

type CreatePlayerInput

type CreatePlayerInput interface {
	Name() string
	Now() time.Time
}

CreatePlayerInput はCreatePlayer usecase のInputポート

type CreatePlayerOutput

type CreatePlayerOutput interface {
	SetPlayer(*entity.Player)
}

CreatePlayerInput はCreatePlayer usecase のOutputポート

type LifeCycle

type LifeCycle interface {
	Begin(context.Context) context.Context
	End(context.Context, error)
}

LifeCycle はアプリケーションのライフサイクルを管理します

type RatingResourceRepository

type RatingResourceRepository interface {
	FindAllByRRNs(context.Context, []entity.RRN) (entity.RatingResourceCollection, error)
	Save(context.Context, entity.RatingResource) error
	SaveAll(context.Context, entity.RatingResourceCollection) error
}

RatingResourceRepository はRatingResouce(Player/Team/etc...) にアクセスするための永続化インタフェース

Jump to

Keyboard shortcuts

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