http

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: 24 Imported by: 0

Documentation

Index

Constants

View Source
const ContextUserIdKey config.ContextKey = "userId"

Variables

This section is empty.

Functions

func EnforceJSONHandler

func EnforceJSONHandler(next http.Handler) http.Handler

func JsonResponse

func JsonResponse(next http.Handler) http.Handler

Types

type DB

type DB interface {
	PingContext(ctx context.Context) error
}

DB represents a type that can be used to interact with the database.

type ErrorMessage

type ErrorMessage struct {
	Error string `json:"error"`
}

type LoginForm

type LoginForm struct {
	Password string `json:"password"`
	Email    string `json:"email"`
}

type Media

type Media interface {
	UploadFile(ctx context.Context, file multipart.File, filename string, mediaType mediaModel.MediaType) (*mediaModel.MediaRecord, error)
	GetMedia(ctx context.Context, id string) (*mediaModel.MediaRecord, error)
}

type MediaRequest

type MediaRequest struct {
	Type model.MediaType `json:"type"`
}

type Quests

type Quests interface {
	CreateQuest(ctx context.Context, quest *questModel.QuestWithSteps) (*questModel.QuestWithSteps, error)
	GetQuest(ctx context.Context, id string) (*questModel.QuestWithSteps, error)
	UpdateQuest(ctx context.Context, quest *questModel.QuestWithSteps) (*questModel.QuestWithSteps, error)
	GetQuestsByUser(ctx context.Context, uuid string, offset int, limit int) ([]questModel.Quest, *questModel.Meta, error)
	GetQuestsAvailable(ctx context.Context, email string, offset int, limit int, finished bool) ([]questModel.QuestAvailable, *questModel.Meta, error)
	DeleteQuest(ctx context.Context, id string) error
	CreateAssignment(ctx context.Context, request questModel.SendQuestRequest) error
	GetAssignment(ctx context.Context, questId string) (*questModel.QuestLine, error)
	StartQuest(ctx context.Context, questId string, userId *string) (*questModel.QuestLine, error)
	CheckAnswer(ctx context.Context, questId string, userId *string, answer *questModel.Answer) (*questModel.QuestLine, error)
}

Quests represents a type that can provide CRUD operations on quests.

type RegistrationRequest

type RegistrationRequest struct {
	FirstName string `json:"first_name"`
	LastName  string `json:"last_name"`
	Nickname  string `json:"nickname"`
	Password  string `json:"password"`
	Email     string `json:"email"`
}

type Response

type Response struct {
	Data interface{} `json:"data"`
	Meta interface{} `json:"meta,omitempty"`
	Jwt  string      `json:"jwt,omitempty"`
}

type Server

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

Server represents an HTTP server that can handle requests for this microservice.

func New

func New(u Users, q Quests, db DB, m Media) *Server

New will instantiate a new instance of Server.

func (*Server) AddRoutes

func (s *Server) AddRoutes(r *mux.Router) error

AddRoutes will add the routes this server supports to the router.

type UserWithToken

type UserWithToken struct {
	*model.User
	AccessToken string `json:"access_token,omitempty"`
}

type Users

type Users interface {
	CreateUser(ctx context.Context, user *model.UserWithPass) (*model.User, error)
	GetUser(ctx context.Context, id string) (*model.User, error)
	GetUserByEmail(ctx context.Context, email string) (*model.User, error)
	FindUsers(ctx context.Context, filters []model.Filter, offset, limit int64) ([]*model.User, error)
	UpdateUser(ctx context.Context, user *model.UserWithPass) (*model.User, error)
	DeleteUser(ctx context.Context, id string) error
}

Users represents a type that can provide CRUD operations on users.

type Validation

type Validation struct {
	Value string
	Valid string
	Error error
}

Jump to

Keyboard shortcuts

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