signoz/pkg/errors/code.go

45 lines
847 B
Go
Raw Normal View History

package errors
import (
"fmt"
"regexp"
)
var (
CodeInvalidInput code = code{"invalid_input"}
CodeInternal = code{"internal"}
CodeUnsupported = code{"unsupported"}
CodeNotFound = code{"not_found"}
CodeMethodNotAllowed = code{"method_not_allowed"}
CodeAlreadyExists = code{"already_exists"}
CodeUnauthenticated = code{"unauthenticated"}
CodeForbidden = code{"forbidden"}
)
var (
codeRegex = regexp.MustCompile(`^[a-z_]+$`)
)
type code struct{ s string }
func NewCode(s string) (code, error) {
if !codeRegex.MatchString(s) {
return code{}, fmt.Errorf("invalid code: %v", s)
}
return code{s: s}, nil
}
func MustNewCode(s string) code {
code, err := NewCode(s)
if err != nil {
panic(err)
}
return code
}
func (c code) String() string {
return c.s
}