mirror of
https://github.com/twofas/2fas-server.git
synced 2024-12-12 04:00:15 +01:00
72 lines
1.5 KiB
Go
72 lines
1.5 KiB
Go
package api
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
)
|
|
|
|
type ApiError struct {
|
|
Code int
|
|
Type string
|
|
Description string
|
|
Reason string
|
|
}
|
|
|
|
func (e *ApiError) Error() string {
|
|
return fmt.Sprintf("%d - %s", e.Code, e.Type)
|
|
}
|
|
|
|
func NewBadRequestError(err error) error {
|
|
return &ApiError{
|
|
Code: http.StatusBadRequest,
|
|
Type: "BadRequest",
|
|
Description: "Malformed request syntax.",
|
|
Reason: err.Error(),
|
|
}
|
|
}
|
|
|
|
func NewInternalServerError(err error) error {
|
|
return &ApiError{
|
|
Code: http.StatusInternalServerError,
|
|
Type: "InternalServerError",
|
|
Description: "Unexpected condition was encountered",
|
|
Reason: err.Error(),
|
|
}
|
|
}
|
|
|
|
func NotFoundError(err error) error {
|
|
return &ApiError{
|
|
Code: http.StatusNotFound,
|
|
Type: "NotFound",
|
|
Description: "Requested resource can not be found",
|
|
Reason: err.Error(),
|
|
}
|
|
}
|
|
|
|
func AccessForbiddenError(err error) error {
|
|
return &ApiError{
|
|
Code: http.StatusForbidden,
|
|
Type: "AccessForbidden",
|
|
Description: "You are not allowed to access requested resource",
|
|
Reason: err.Error(),
|
|
}
|
|
}
|
|
|
|
func ConflictError(err error) error {
|
|
return &ApiError{
|
|
Code: http.StatusConflict,
|
|
Type: "Conflict",
|
|
Description: "The request could not be completed due to a conflict with the current state of the target resource",
|
|
Reason: err.Error(),
|
|
}
|
|
}
|
|
|
|
func GoneError(err error) error {
|
|
return &ApiError{
|
|
Code: http.StatusGone,
|
|
Type: "Gone",
|
|
Description: "Access is no longer available",
|
|
Reason: err.Error(),
|
|
}
|
|
}
|