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.