Documentation
¶
Index ¶
- func AuthorizationMiddleware(tokenParser TokenParser, logger log.Logger) mux.MiddlewareFunc
- func NewRouter(options RouterOptions, dependencies RouterDependencies) *mux.Router
- type RouterDependencies
- type RouterOptions
- type SolutionHandler
- func (handler SolutionHandler) CreateSolution(writer http.ResponseWriter, request *http.Request)
- func (handler SolutionHandler) FormatSolution(writer http.ResponseWriter, request *http.Request)
- func (handler SolutionHandler) GetSolution(writer http.ResponseWriter, request *http.Request)
- func (handler SolutionHandler) GetSolutions(writer http.ResponseWriter, request *http.Request)
- type SolutionUsecase
- type TaskHandler
- func (handler TaskHandler) CreateTask(writer http.ResponseWriter, request *http.Request)
- func (handler TaskHandler) DeleteTask(writer http.ResponseWriter, request *http.Request)
- func (handler TaskHandler) GetTask(writer http.ResponseWriter, request *http.Request)
- func (handler TaskHandler) GetTasks(writer http.ResponseWriter, request *http.Request)
- func (handler TaskHandler) UpdateTask(writer http.ResponseWriter, request *http.Request)
- type TaskUsecase
- type TokenCreator
- type TokenHandler
- type TokenParser
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AuthorizationMiddleware ¶ added in v1.5.1
func AuthorizationMiddleware( tokenParser TokenParser, logger log.Logger, ) mux.MiddlewareFunc
AuthorizationMiddleware ...
func NewRouter ¶
func NewRouter( options RouterOptions, dependencies RouterDependencies, ) *mux.Router
NewRouter ...
Types ¶
type RouterDependencies ¶
type RouterDependencies struct {
UserGetter usecases.UserGetter
TaskStorage usecases.TaskStorage
SolutionStorage usecases.SolutionStorage
SolutionRegister entities.SolutionRegister
Clock usecases.Clock
Logger log.Logger
}
RouterDependencies ...
type RouterOptions ¶ added in v1.5.1
RouterOptions ...
type SolutionHandler ¶
type SolutionHandler struct {
SolutionUsecase SolutionUsecase
Logger log.Logger
}
SolutionHandler ...
func (SolutionHandler) CreateSolution ¶
func (handler SolutionHandler) CreateSolution( writer http.ResponseWriter, request *http.Request, )
CreateSolution ...
@router /tasks/{taskID}/solutions/ [POST]
@param taskID path integer true "task ID" minimum(1)
@param data body entities.Solution true "solution data"
@accept json
@security JWTAuthorization
@produce json
@success 201 {object} entities.Solution
@failure 400 {string} string
@failure 401 {string} string
@failure 403 {string} string
@failure 404 {string} string
@failure 500 {string} string
@tags Solution
func (SolutionHandler) FormatSolution ¶ added in v1.5.1
func (handler SolutionHandler) FormatSolution( writer http.ResponseWriter, request *http.Request, )
FormatSolution ...
@router /solutions/format [POST]
@param data body entities.Solution true "solution data"
@accept json
@security JWTAuthorization
@produce json
@success 200 {object} entities.Solution
@failure 400 {string} string
@failure 401 {string} string
@failure 403 {string} string
@failure 404 {string} string
@failure 500 {string} string
@tags Solution
func (SolutionHandler) GetSolution ¶
func (handler SolutionHandler) GetSolution( writer http.ResponseWriter, request *http.Request, )
GetSolution ...
@router /solutions/{id} [GET]
@param id path integer true "solution ID" minimum(1)
@security JWTAuthorization
@produce json
@success 200 {object} entities.Solution
@failure 400 {string} string
@failure 401 {string} string
@failure 403 {string} string
@failure 404 {string} string
@failure 500 {string} string
@tags Solution
func (SolutionHandler) GetSolutions ¶
func (handler SolutionHandler) GetSolutions( writer http.ResponseWriter, request *http.Request, )
GetSolutions ...
@router /tasks/{taskID}/solutions/ [GET]
@param taskID path integer true "task ID" minimum(1)
@param pageSize query integer true "page size" minimum(1)
@param page query integer true "page" minimum(1)
@security JWTAuthorization
@produce json
@success 200 {object} entities.SolutionGroup
@failure 400 {string} string
@failure 401 {string} string
@failure 403 {string} string
@failure 404 {string} string
@failure 500 {string} string
@tags Solution
type SolutionUsecase ¶ added in v1.5.1
type SolutionUsecase interface {
GetSolutions(userID uint, taskID uint, pagination entities.Pagination) (
entities.SolutionGroup,
error,
)
GetSolution(userID uint, solutionID uint) (entities.Solution, error)
CreateSolution(userID uint, taskID uint, solution entities.Solution) (
entities.Solution,
error,
)
}
SolutionUsecase ...
type TaskHandler ¶
type TaskHandler struct {
TaskUsecase TaskUsecase
Logger log.Logger
}
TaskHandler ...
func (TaskHandler) CreateTask ¶
func (handler TaskHandler) CreateTask( writer http.ResponseWriter, request *http.Request, )
CreateTask ...
@router /tasks/ [POST]
@param data body entities.Task true "task data"
@accept json
@security JWTAuthorization
@produce json
@success 201 {object} entities.Task
@failure 400 {string} string
@failure 401 {string} string
@failure 403 {string} string
@failure 404 {string} string
@failure 500 {string} string
@tags Task
func (TaskHandler) DeleteTask ¶
func (handler TaskHandler) DeleteTask( writer http.ResponseWriter, request *http.Request, )
DeleteTask ...
@router /tasks/{id} [DELETE]
@param id path integer true "task ID" minimum(1)
@security JWTAuthorization
@produce plain
@success 204 {string} string
@failure 400 {string} string
@failure 401 {string} string
@failure 403 {string} string
@failure 404 {string} string
@failure 500 {string} string
@tags Task
func (TaskHandler) GetTask ¶
func (handler TaskHandler) GetTask( writer http.ResponseWriter, request *http.Request, )
GetTask ...
@router /tasks/{id} [GET]
@param id path integer true "task ID" minimum(1)
@security JWTAuthorization
@produce json
@success 200 {object} entities.Task
@failure 400 {string} string
@failure 401 {string} string
@failure 403 {string} string
@failure 404 {string} string
@failure 500 {string} string
@tags Task
func (TaskHandler) GetTasks ¶
func (handler TaskHandler) GetTasks( writer http.ResponseWriter, request *http.Request, )
GetTasks ...
@router /tasks/ [GET]
@param pageSize query integer true "page size" minimum(1)
@param page query integer true "page" minimum(1)
@security JWTAuthorization
@produce json
@success 200 {object} entities.TaskGroup
@failure 400 {string} string
@failure 401 {string} string
@failure 403 {string} string
@failure 404 {string} string
@failure 500 {string} string
@tags Task
func (TaskHandler) UpdateTask ¶
func (handler TaskHandler) UpdateTask( writer http.ResponseWriter, request *http.Request, )
UpdateTask ...
@router /tasks/{id} [PUT]
@param id path integer true "task ID" minimum(1)
@param data body entities.Task true "task data"
@accept json
@security JWTAuthorization
@produce plain
@success 204 {string} string
@failure 400 {string} string
@failure 401 {string} string
@failure 403 {string} string
@failure 404 {string} string
@failure 500 {string} string
@tags Task
type TaskUsecase ¶ added in v1.5.1
type TaskUsecase interface {
entities.TaskGetter
GetTasks(userID uint, pagination entities.Pagination) (
entities.TaskGroup,
error,
)
CreateTask(userID uint, task entities.Task) (entities.Task, error)
UpdateTask(userID uint, taskID uint, task entities.Task) error
DeleteTask(userID uint, taskID uint) error
}
TaskUsecase ...
type TokenCreator ¶ added in v1.5.1
type TokenCreator interface {
CreateToken(user entities.User) (entities.Credentials, error)
}
TokenCreator ...
type TokenHandler ¶ added in v1.5.1
type TokenHandler struct {
TokenCreator TokenCreator
Logger log.Logger
}
TokenHandler ...
func (TokenHandler) CreateToken ¶ added in v1.5.1
func (handler TokenHandler) CreateToken( writer http.ResponseWriter, request *http.Request, )
CreateToken ...
@router /tokens/ [POST]
@param data body entities.User true "user data"
@accept json
@produce json
@success 201 {object} entities.Credentials
@failure 400 {string} string
@failure 401 {string} string
@failure 403 {string} string
@failure 404 {string} string
@failure 500 {string} string
@tags Token
type TokenParser ¶ added in v1.5.1
type TokenParser interface {
ParseToken(authorizationHeader string) (*entities.AccessTokenClaims, error)
}
TokenParser ...
Click to show internal directories.
Click to hide internal directories.