1package server
2
3import (
4 "errors"
5 "net/http"
6
7 "github.com/labstack/echo/v4"
8)
9
10var (
11 ErrDatabaseNotFound = errors.New("not found")
12 ErrInternalServerErr = echo.NewHTTPError(http.StatusInternalServerError, "internal server error")
13 ErrInvalidInput = echo.NewHTTPError(http.StatusBadRequest, "invalid input")
14 ErrNotFound = echo.NewHTTPError(http.StatusNotFound, "not found")
15 ErrUnauthorized = echo.NewHTTPError(http.StatusUnauthorized, "unauthorized")
16)
17
18type ValidationError struct {
19 Field string `json:"field"`
20 Message string `json:"message"`
21}
22
23type ValidationErrors struct {
24 Errors []ValidationError `json:"errors"`
25}
26
27func (v ValidationErrors) Error() string {
28 return "validation failed"
29}
30
31func NewValidationError(field, message string) *echo.HTTPError {
32 return echo.NewHTTPError(http.StatusBadRequest, ValidationErrors{
33 Errors: []ValidationError{{Field: field, Message: message}},
34 })
35}
36
37func NewValidationErrors(errors ...ValidationError) *echo.HTTPError {
38 return echo.NewHTTPError(http.StatusBadRequest, ValidationErrors{
39 Errors: errors,
40 })
41}