mirror of
https://github.com/TecharoHQ/anubis.git
synced 2026-04-05 16:28:17 +00:00
Signed-off-by: Jason Cameron <jason.cameron@stanwith.me> Signed-off-by: Jason Cameron <git@jasoncameron.dev>
39 lines
869 B
Go
39 lines
869 B
Go
package challenge
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"net/http"
|
|
)
|
|
|
|
var (
|
|
ErrFailed = errors.New("challenge: user failed challenge")
|
|
ErrMissingField = errors.New("challenge: missing field")
|
|
ErrInvalidFormat = errors.New("challenge: field has invalid format")
|
|
ErrInvalidInput = errors.New("challenge: input is nil or missing required fields")
|
|
)
|
|
|
|
func NewError(verb, publicReason string, privateReason error) *Error {
|
|
return &Error{
|
|
Verb: verb,
|
|
PublicReason: publicReason,
|
|
PrivateReason: privateReason,
|
|
StatusCode: http.StatusForbidden,
|
|
}
|
|
}
|
|
|
|
type Error struct {
|
|
PrivateReason error
|
|
Verb string
|
|
PublicReason string
|
|
StatusCode int
|
|
}
|
|
|
|
func (e *Error) Error() string {
|
|
return fmt.Sprintf("challenge: error when processing challenge: %s: %v", e.Verb, e.PrivateReason)
|
|
}
|
|
|
|
func (e *Error) Unwrap() error {
|
|
return e.PrivateReason
|
|
}
|