Documentation
¶
Index ¶
- Variables
- type BulkResponseInternal
- type CollectionEntry
- type Health
- type ItemResultInternal
- type Pokemon
- type PokemonAPIRewardGenerator
- type PokemonAPIRewardGeneratorConfig
- type Rarity
- type Repository
- func (r Repository) CompleteTask(ctx context.Context, id, userID int64) (Task, error)
- func (r Repository) CreateCollectionEntry(ctx context.Context, userID int64, reward TaskReward) (CollectionEntry, error)
- func (r Repository) CreateTaskWithReward(ctx context.Context, t Task, reward TaskReward) (Task, error)
- func (r Repository) DeleteTask(ctx context.Context, userID, id int64) error
- func (r Repository) GetDataForStatistic(ctx context.Context, userID int64) (UserStatisticDataUpdate, error)
- func (r Repository) GetStatistic(ctx context.Context, userID int64) (UserStatistic, error)
- func (r Repository) GetTaskForUpdate(ctx context.Context, id, userID int64) (Task, error)
- func (r Repository) GetTaskState(ctx context.Context, id, userID int64) (Task, error)
- func (r Repository) GetTaskWithReward(ctx context.Context, id, userID int64) (Task, error)
- func (r Repository) ListCollection(ctx context.Context, userID int64) ([]CollectionEntry, error)
- func (r Repository) ListCompletedTasksByUser(ctx context.Context, userID int64) ([]Task, error)
- func (r Repository) ListOpenTasksByUser(ctx context.Context, userID int64) ([]Task, error)
- func (r Repository) ListTasksByUser(ctx context.Context, userID int64) ([]Task, error)
- func (r Repository) RevealTaskReward(ctx context.Context, taskID int64) (TaskReward, error)
- func (r Repository) UpdateTask(ctx context.Context, t Task) (Task, error)
- func (r Repository) UpdateUserStatisticOnCreate(ctx context.Context, userID int64) (UserStatistic, error)
- func (r Repository) UpdateUserStatisticOnDelete(ctx context.Context, userID int64) (UserStatistic, error)
- func (r Repository) UpdateUserStatisticOnTaskCompleted(ctx context.Context, data UserStatisticDataUpdate) (UserStatistic, error)
- func (r Repository) WithTx(ctx context.Context, fn func(Repository) error) error
- type RewardGenerator
- type Service
- func (s Service) CompleteTask(ctx context.Context, id, userID int64, timezone string) (Task, error)
- func (s Service) CreateTask(ctx context.Context, t Task) (Task, error)
- func (s Service) CreateTaskBulk(ctx context.Context, tasks []Task) BulkResponseInternal
- func (s Service) DeleteTask(ctx context.Context, id, userID int64) error
- func (s Service) GetHealth() (Health, error)
- func (s Service) GetStatistic(ctx context.Context, userID int64, timezone string) (UserStatistic, error)
- func (s Service) GetTaskWithReward(ctx context.Context, id, userID int64) (Task, error)
- func (s Service) ListCollection(ctx context.Context, userID int64) ([]CollectionEntry, error)
- func (s Service) ListCompletedTasksByUser(ctx context.Context, userID int64) ([]Task, error)
- func (s Service) ListOpenTasksByUser(ctx context.Context, userID int64) ([]Task, error)
- func (s Service) ListTasksByUser(ctx context.Context, userID int64) ([]Task, error)
- func (s Service) UpdateTask(ctx context.Context, dueAtSent bool, update TaskUpdate) (Task, error)
- type Sprites
- type Task
- type TaskReward
- type TaskUpdate
- type UserStatistic
- type UserStatisticDataUpdate
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrBadRequest = errors.New("bad request") ErrTaskNotFound = errors.New("task not found") ErrStatisticNotFound = errors.New("user statistic not found") ErrTaskRewardNotFound = errors.New("task reward not found") ErrTaskAlreadyCompleted = errors.New("task already completed") ErrTaskCompletedDelete = errors.New("cannot delete completed task") ErrEmptyTitle = errors.New("title cannot be empty") ErrEmptyTag = errors.New("tag cannot be empty") ErrCollectionEntryNotFound = errors.New("collection entry not found") )
Functions ¶
This section is empty.
Types ¶
type BulkResponseInternal ¶ added in v0.9.0
type BulkResponseInternal struct {
Results []ItemResultInternal `json:"results"`
SuccessCount int `json:"successCount"`
FailureCount int `json:"failureCount"`
}
type CollectionEntry ¶
type ItemResultInternal ¶ added in v0.9.0
type PokemonAPIRewardGenerator ¶ added in v0.9.0
type PokemonAPIRewardGenerator struct {
// contains filtered or unexported fields
}
func NewPokemonAPIRewardGenerator ¶ added in v0.9.0
func NewPokemonAPIRewardGenerator(client *http.Client, cfg PokemonAPIRewardGeneratorConfig) *PokemonAPIRewardGenerator
func (*PokemonAPIRewardGenerator) Generate ¶ added in v0.9.0
func (g *PokemonAPIRewardGenerator) Generate(ctx context.Context) (TaskReward, error)
type PokemonAPIRewardGeneratorConfig ¶ added in v0.9.0
type PokemonAPIRewardGeneratorConfig struct {
BaseURL string
RequestTimeout time.Duration
ShinyOdds int
}
func DefaultPokemonAPIRewardGeneratorConfig ¶ added in v0.9.0
func DefaultPokemonAPIRewardGeneratorConfig() PokemonAPIRewardGeneratorConfig
type Repository ¶
type Repository struct {
// contains filtered or unexported fields
}
func NewRepository ¶
func NewRepository(sqlDB *sql.DB) Repository
func (Repository) CompleteTask ¶
func (Repository) CreateCollectionEntry ¶
func (r Repository) CreateCollectionEntry(ctx context.Context, userID int64, reward TaskReward) (CollectionEntry, error)
func (Repository) CreateTaskWithReward ¶ added in v0.9.0
func (r Repository) CreateTaskWithReward(ctx context.Context, t Task, reward TaskReward) (Task, error)
func (Repository) DeleteTask ¶
func (r Repository) DeleteTask(ctx context.Context, userID, id int64) error
func (Repository) GetDataForStatistic ¶
func (r Repository) GetDataForStatistic(ctx context.Context, userID int64) (UserStatisticDataUpdate, error)
func (Repository) GetStatistic ¶
func (r Repository) GetStatistic(ctx context.Context, userID int64) (UserStatistic, error)
func (Repository) GetTaskForUpdate ¶ added in v0.9.0
func (Repository) GetTaskState ¶ added in v0.9.0
func (Repository) GetTaskWithReward ¶ added in v0.9.0
func (Repository) ListCollection ¶
func (r Repository) ListCollection(ctx context.Context, userID int64) ([]CollectionEntry, error)
func (Repository) ListCompletedTasksByUser ¶ added in v0.9.0
func (Repository) ListOpenTasksByUser ¶ added in v0.9.0
func (Repository) ListTasksByUser ¶
func (Repository) RevealTaskReward ¶ added in v0.9.0
func (r Repository) RevealTaskReward(ctx context.Context, taskID int64) (TaskReward, error)
func (Repository) UpdateTask ¶
func (Repository) UpdateUserStatisticOnCreate ¶
func (r Repository) UpdateUserStatisticOnCreate(ctx context.Context, userID int64) (UserStatistic, error)
func (Repository) UpdateUserStatisticOnDelete ¶
func (r Repository) UpdateUserStatisticOnDelete(ctx context.Context, userID int64) (UserStatistic, error)
func (Repository) UpdateUserStatisticOnTaskCompleted ¶ added in v0.9.0
func (r Repository) UpdateUserStatisticOnTaskCompleted(ctx context.Context, data UserStatisticDataUpdate) (UserStatistic, error)
func (Repository) WithTx ¶ added in v0.9.0
func (r Repository) WithTx(ctx context.Context, fn func(Repository) error) error
type RewardGenerator ¶ added in v0.9.0
type RewardGenerator interface {
Generate(ctx context.Context) (TaskReward, error)
}
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func NewService(repo Repository, rewardGenerator RewardGenerator) Service
func (Service) CompleteTask ¶
func (Service) CreateTaskBulk ¶ added in v0.9.0
func (s Service) CreateTaskBulk(ctx context.Context, tasks []Task) BulkResponseInternal
func (Service) DeleteTask ¶
func (Service) GetStatistic ¶
func (Service) GetTaskWithReward ¶ added in v0.9.0
func (Service) ListCollection ¶
func (Service) ListCompletedTasksByUser ¶ added in v0.9.0
func (Service) ListOpenTasksByUser ¶ added in v0.9.0
func (Service) ListTasksByUser ¶
func (Service) UpdateTask ¶
type Task ¶
type Task struct {
CreatedAt time.Time `json:"createdAt"`
DueAt *time.Time `json:"dueAt"`
CompletedAt *time.Time `json:"completedAt"`
Title string `json:"title"`
Description string `json:"description"`
Tag string `json:"tag"`
Reward TaskReward
ID int64 `json:"id"`
UserID int64 `json:"userID"`
Completed bool `json:"completed"`
}
type TaskReward ¶
type TaskUpdate ¶
type UserStatistic ¶
Click to show internal directories.
Click to hide internal directories.