quests

package
v0.0.0-...-ea178e4 Latest Latest
Warning

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

Go to latest
Published: May 8, 2023 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Events

type Events interface {
	Produce(ctx context.Context, topic events.Topic, payload interface{})
}

Events represents a type for producing events on user CRUD operations.

type Quests

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

Quests provides functionality for CRUD operations on a quests.

func New

func New(s *questStore.Store, e Events) *Quests

func (*Quests) CheckAnswer

func (q *Quests) CheckAnswer(ctx context.Context, questId string, userId *string, answer *model.Answer) (*model.QuestLine, error)

func (*Quests) CreateAssignment

func (q *Quests) CreateAssignment(ctx context.Context, request model.SendQuestRequest) error

func (*Quests) CreateQuest

func (q *Quests) CreateQuest(ctx context.Context, quest *model.QuestWithSteps) (*model.QuestWithSteps, error)

func (*Quests) DeleteQuest

func (q *Quests) DeleteQuest(ctx context.Context, id string) error

func (*Quests) GetAssignment

func (q *Quests) GetAssignment(ctx context.Context, questId string) (*model.QuestLine, error)

func (*Quests) GetQuest

func (q *Quests) GetQuest(ctx context.Context, id string) (*model.QuestWithSteps, error)

func (*Quests) GetQuestsAvailable

func (q *Quests) GetQuestsAvailable(ctx context.Context, email string, offset int, limit int, finished bool) ([]model.QuestAvailable, *model.Meta, error)

func (*Quests) GetQuestsByUser

func (q *Quests) GetQuestsByUser(ctx context.Context, ownerUuid string, offset int, limit int) ([]model.Quest, *model.Meta, error)

func (*Quests) StartQuest

func (q *Quests) StartQuest(ctx context.Context, questId string, userId *string) (*model.QuestLine, error)

func (*Quests) UpdateQuest

func (q *Quests) UpdateQuest(ctx context.Context, quest *model.QuestWithSteps) (*model.QuestWithSteps, error)

UpdateQuest updates quests. If there were any steps inside it deletes them and insert new regardless of already created steps

type Store

type Store interface {
	InsertQuest(ctx context.Context, quest *model.QuestWithSteps) (*model.QuestWithSteps, error)
	GetQuest(ctx context.Context, id string) (*model.QuestWithSteps, error)
	GetQuestsByUser(ctx context.Context, uuid string, offset int, limit int) ([]model.Quest, *model.Meta, error)
	UpdateQuest(ctx context.Context, quest *model.QuestWithSteps) (*model.QuestWithSteps, error)
	DeleteQuest(ctx context.Context, id string) error
	GetQuestsAvailable(ctx context.Context, email string, offset int, limit int, finished bool) ([]model.QuestAvailable, *model.Meta, error)
	CreateAssignment(ctx context.Context, request model.SendQuestRequest) error
	GetAssignment(ctx context.Context, questId string, userId string) (*model.Assignment, error)
	UpdateAssignment(ctx context.Context, questId string, userId *string, currentStep int, status model.Status) error
}

Store represents a type for storing a user in a database.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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