handlers

package
v0.0.0-...-6dc70a1 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2021 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewRouter

func NewRouter(redirectEndpointPrefix string, handlers Handlers) *mux.Router

NewRouter ...

Types

type ErrorPresenter

type ErrorPresenter interface {
	PresentError(
		writer http.ResponseWriter,
		request *http.Request,
		statusCode int,
		err error,
	)
}

ErrorPresenter ...

type Handler

type Handler interface {
	http.Handler
}

Handler ...

It is used only for mock generating.

type Handlers

type Handlers struct {
	LinkRedirectHandler http.Handler
	LinkGettingHandler  http.Handler
	LinkCreatingHandler http.Handler
	StaticFileHandler   http.Handler
}

Handlers ...

type LinkCreatingHandler

type LinkCreatingHandler struct {
	LinkCreator    LinkCreator
	LinkPresenter  LinkPresenter
	ErrorPresenter ErrorPresenter
}

LinkCreatingHandler ...

func (LinkCreatingHandler) ServeHTTP

func (handler LinkCreatingHandler) ServeHTTP(
	writer http.ResponseWriter,
	request *http.Request,
)

ServeHTTP ...

@router /links/ [POST]
@accept json
@param data body handlers.LinkCreatingRequest true "link data"
@produce json
@success 200 {object} entities.Link
@failure 400 {object} presenters.ErrorResponse
@failure 500 {object} presenters.ErrorResponse

type LinkCreatingRequest

type LinkCreatingRequest struct {
	URL string
}

LinkCreatingRequest ...

It's public only for docs generating.

type LinkCreator

type LinkCreator interface {
	CreateLink(url string) (entities.Link, error)
}

LinkCreator ...

type LinkGetter

type LinkGetter interface {
	GetLink(code string) (entities.Link, error)
}

LinkGetter ...

type LinkGettingHandler

type LinkGettingHandler struct {
	LinkGetter     LinkGetter
	LinkPresenter  LinkPresenter
	ErrorPresenter ErrorPresenter
}

LinkGettingHandler ...

func (LinkGettingHandler) ServeHTTP

func (handler LinkGettingHandler) ServeHTTP(
	writer http.ResponseWriter,
	request *http.Request,
)

ServeHTTP ...

@router /links/{code} [GET]
@param code path string true "link code"
@produce json
@success 200 {object} entities.Link
@failure 400 {object} presenters.ErrorResponse
@failure 404 {object} presenters.ErrorResponse
@failure 500 {object} presenters.ErrorResponse

type LinkPresenter

type LinkPresenter interface {
	PresentLink(
		writer http.ResponseWriter,
		request *http.Request,
		link entities.Link,
	)
}

LinkPresenter ...

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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