123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package api
- import (
- "net/http"
- "github.com/go-chi/render"
- )
- type ErrResponse struct {
- Err error `json:"-"`
- HTTPStatusCode int `json:"-"`
- StatusText string `json:"status"`
- AppCode int64 `json:"code,omitempty"`
- ErrorText string `json:"error,omitempty"`
- }
- func (e *ErrResponse) Render(w http.ResponseWriter, r *http.Request) error {
- render.Status(r, e.HTTPStatusCode)
- return nil
- }
- func ErrInvalidRequest(err error) render.Renderer {
- return &ErrResponse{
- Err: err,
- HTTPStatusCode: http.StatusBadRequest,
- StatusText: "Invalid request.",
- ErrorText: err.Error(),
- }
- }
- func ErrRender(err error) render.Renderer {
- return &ErrResponse{
- Err: err,
- HTTPStatusCode: http.StatusUnprocessableEntity,
- StatusText: "Error rendering response.",
- ErrorText: err.Error(),
- }
- }
- func ErrInternalServer(err error) render.Renderer {
- return &ErrResponse{
- Err: err,
- HTTPStatusCode: http.StatusInternalServerError,
- StatusText: "Internal server error.",
- ErrorText: err.Error(),
- }
- }
- func ErrValidationError(err error) render.Renderer {
- return &ErrResponse{
- Err: err,
- HTTPStatusCode: http.StatusBadRequest,
- StatusText: "Validation error.",
- ErrorText: err.Error(),
- }
- }
- var ErrNotFound = &ErrResponse{HTTPStatusCode: http.StatusNotFound, StatusText: "Resource not found."}
- var ErrNotImplemted = &ErrResponse{HTTPStatusCode: http.StatusNotImplemented, StatusText: "Not im plemented yet."}
- var ErrUniqueIndexError = &ErrResponse{HTTPStatusCode: http.StatusBadRequest, StatusText: "Unique index violation."}
- var ErrForbidden = &ErrResponse{HTTPStatusCode: http.StatusForbidden, StatusText: "endpoint not permitted."}
|