domain

package
v0.0.0-...-92e2128 Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2020 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNoSuchEntity is returned when no entity was found for a given key.
	ErrNoSuchEntity = NewRequestError(http.StatusNotFound, "404 no such entity")
)

Functions

func NewRequestError

func NewRequestError(code int, msg ...string) error

NewRequestError は外部要因エラーを生成します。

Types

type Cursor

type Cursor string

Cursor はページネーションのカーソルです。

func (Cursor) Empty

func (c Cursor) Empty() bool

Empty はカーソルが空か判定します。

type DummyID

type DummyID string

DummyID はダミーユーザーの認証IDです。

func (DummyID) Check

func (id DummyID) Check() error

Check はダミーユーザーIDをチェックします。

type FirebaseID

type FirebaseID string

FirebaseID はFirebaseの認証IDです。

type FirebaseRepository

type FirebaseRepository interface {
	FirebaseID(c context.Context, token FirebaseToken) (FirebaseID, error)
}

FirebaseRepository はFirebaseの操作を抽象化します。

type FirebaseToken

type FirebaseToken string

FirebaseToken はFirebaseトークンです。

type Item

type Item struct {
	ID   ItemID
	Name string
}

Item はアイテムのマスターデータです。

type ItemID

type ItemID string

ItemID はアイテムのIDです。

type ItemInventory

type ItemInventory struct {
	UserID   UserID
	ItemID   ItemID
	Quantity int64
}

ItemInventory はアイテムの所持数です。

type MasterRepository

type MasterRepository interface {
	PaymentItems(c context.Context) ([]PaymentItem, error)
	PaymentItem(c context.Context, id PaymentItemID) (*PaymentItem, error)
}

MasterRepository はマスターデータの読み取りを抽象化します。

type PaymentItem

type PaymentItem struct {
	ID       PaymentItemID
	Item     Item
	Price    int64
	Quantity int64
}

PaymentItem は課金アイテムの値段と個数です。

type PaymentItemID

type PaymentItemID string

PaymentItemID は課金アイテムのIDです。

type PaymentLog

type PaymentLog struct {
	Item      PaymentItem
	CreatedAt time.Time
}

PaymentLog は課金履歴です。

type PaymentRepository

type PaymentRepository interface {
	Pay(c context.Context, user *User, paymentItem *PaymentItem) (*PaymentLog, error)
	Logs(c context.Context, user *User, cursor Cursor) ([]PaymentLog, Cursor, error)
}

PaymentRepository は課金のCRUDを抽象化します。

type Ranker

type Ranker struct {
	User  User
	Rank  int64
	Score int64
}

Ranker はランキング内のユーザーです。

type RankingRepository

type RankingRepository interface {
	Rankers(c context.Context, offset, limit int64) ([]Ranker, error)
}

RankingRepository はランキングのCRUDを抽象化します。

type RequestError

type RequestError struct {
	Code int
	Msg  string
}

RequestError は外部要因エラーの識別に使用します。

func (RequestError) Error

func (e RequestError) Error() string

type User

type User struct {
	ID         UserID
	Token      UserToken
	FirebaseID FirebaseID
	DummyID    DummyID
	Name       UserName
	CreatedAt  time.Time
}

User はユーザーIDによってユニークなユーザーデータです。

func NewDummyUser

func NewDummyUser(dummyID DummyID) *User

NewDummyUser はダミーユーザーを作成します。

func NewFirebaseUser

func NewFirebaseUser(firebaseID FirebaseID) *User

NewFirebaseUser はFirebaseユーザーを作成します。

func (*User) Auth

func (user *User) Auth(token UserToken) error

Auth はユーザートークンをチェックします。

func (*User) UpdateName

func (user *User) UpdateName(name UserName) error

UpdateName はユーザー名を変更します。

type UserID

type UserID string

UserID はユーザーの永続化IDです。

type UserName

type UserName string

UserName はユーザー名です。

func (UserName) Check

func (name UserName) Check() error

Check はユーザー名をチェックします。

type UserRepository

type UserRepository interface {
	ByUserID(c context.Context, userID UserID) (*User, error)
	ByDummyID(c context.Context, dummyID DummyID) (*User, error)
	ByFirebaseID(c context.Context, firebaseID FirebaseID) (*User, error)
	CreateDummyUser(c context.Context, dummyID DummyID) (*User, error)
	CreateFirebaseUser(fc context.Context, irebaseID FirebaseID) (*User, error)
	Update(c context.Context, user *User) error
}

UserRepository はユーザーのCRUDを抽象化します。

type UserToken

type UserToken string

UserToken はユーザー認証トークンです。

Jump to

Keyboard shortcuts

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