mirror of https://github.com/statping/statping
91 lines
2.0 KiB
Go
91 lines
2.0 KiB
Go
package types
|
|
|
|
import (
|
|
"github.com/pkg/errors"
|
|
"net/http"
|
|
)
|
|
|
|
var (
|
|
ErrorServiceSelection = returnErr("error selecting services")
|
|
|
|
// create errors
|
|
ErrorCreateService = returnErr("error creating service")
|
|
ErrorCreateMessage = returnErr("error creating messages")
|
|
ErrorCreateIncident = returnErr("error creating incident")
|
|
ErrorCreateUser = returnErr("error creating user")
|
|
ErrorCreateIncidentUp = returnErr("error creating incident update")
|
|
ErrorCreateGroup = returnErr("error creating group")
|
|
ErrorCreateCheckinHit = returnErr("error creating checkin hit")
|
|
ErrorCreateSampleHits = returnErr("error creating sample hits")
|
|
ErrorCreateCore = returnErr("error creating core")
|
|
ErrorCreateHit = returnErr("error creating hit for service %v")
|
|
|
|
ErrorDirCreate = returnErr("error creating directory %s")
|
|
|
|
ErrorFileCopy = returnErr("error copying file %s to %s")
|
|
|
|
ErrorConfig = returnErr("error with configuration")
|
|
ErrorConnection = returnErr("error with connection")
|
|
|
|
ErrorNotFound = returnErrCode("item was not found", http.StatusNotFound)
|
|
ErrorJSONParse = returnErrCode("could not parse JSON request", http.StatusBadRequest)
|
|
)
|
|
|
|
type Errorer interface {
|
|
}
|
|
|
|
type Error struct {
|
|
err error
|
|
code int
|
|
}
|
|
|
|
func (e Error) Error() string {
|
|
return e.err.Error()
|
|
}
|
|
|
|
func (e Error) String() string {
|
|
return e.err.Error()
|
|
}
|
|
|
|
func returnErrCode(str string, code int) error {
|
|
return Error{
|
|
err: errors.New(str),
|
|
code: code,
|
|
}
|
|
}
|
|
|
|
func returnErr(str string) Error {
|
|
return Error{
|
|
err: errors.New(str),
|
|
}
|
|
}
|
|
|
|
func convertError(val interface{}) string {
|
|
switch v := val.(type) {
|
|
case *Error:
|
|
return v.Error()
|
|
case string:
|
|
return v
|
|
default:
|
|
return ""
|
|
}
|
|
}
|
|
|
|
type errorer interface {
|
|
Error() string
|
|
}
|
|
|
|
func ErrWrap(err errorer, format interface{}, args ...interface{}) Error {
|
|
return Error{
|
|
err: errors.Wrapf(err, convertError(format), args...),
|
|
code: 0,
|
|
}
|
|
}
|
|
|
|
func Err(err errorer, format interface{}) Error {
|
|
return Error{
|
|
err: errors.Wrap(err, convertError(format)),
|
|
code: 0,
|
|
}
|
|
}
|