Files
osbuilder/pkg/errors/base.go
Lukasz Zajaczkowski 390891fa14 create cluster ISO image
2025-02-06 14:29:01 +01:00

60 lines
930 B
Go

package errors
import (
"errors"
client "github.com/Yamashou/gqlgenc/clientv2"
)
type KnownError string
func (k KnownError) String() string {
return string(k)
}
func (k KnownError) Error() string {
return string(k)
}
const (
ErrorNotFound KnownError = "could not find resource"
)
type wrappedErrorResponse struct {
err *client.ErrorResponse
}
func (er *wrappedErrorResponse) Has(err KnownError) bool {
if er.err.GqlErrors == nil {
return false
}
for _, g := range *er.err.GqlErrors {
if g.Message == string(err) {
return true
}
}
return false
}
func newAPIError(err *client.ErrorResponse) *wrappedErrorResponse {
return &wrappedErrorResponse{
err: err,
}
}
func IsNotFound(err error) bool {
if err == nil {
return false
}
errorResponse := new(client.ErrorResponse)
ok := errors.As(err, &errorResponse)
if !ok {
return false
}
return newAPIError(errorResponse).Has(ErrorNotFound)
}