openmeter / customer /errors.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 3)
1c4c66b verified
Raw
History Blame Contribute Delete
2.8 kB
package customer
import (
"errors"
"fmt"
"strings"
"github.com/openmeterio/openmeter/pkg/models"
)
// UpdateAfterDeleteError represents an error when an update is attempted after a delete
var _ error = (*UpdateAfterDeleteError)(nil)
func NewUpdateAfterDeleteError() *UpdateAfterDeleteError {
return &UpdateAfterDeleteError{
err: models.NewGenericConflictError(fmt.Errorf("update after delete")),
}
}
var _ models.GenericError = &UpdateAfterDeleteError{}
type UpdateAfterDeleteError struct {
err error
}
func (e UpdateAfterDeleteError) Error() string {
return e.err.Error()
}
func (e UpdateAfterDeleteError) Unwrap() error {
return e.err
}
// NewKeyConflictError creates a new KeyConflictError
func NewKeyConflictError(namespace, key string) *KeyConflictError {
return &KeyConflictError{
err: models.NewGenericConflictError(fmt.Errorf("key \"%s\" is already used by an another customer in the namespace %s", key, namespace)),
}
}
var _ models.GenericError = &KeyConflictError{}
// KeyConflictError represents an error when a subject key is already associated with a customer
type KeyConflictError struct {
err error
}
func (e KeyConflictError) Error() string {
return e.err.Error()
}
func (e KeyConflictError) Unwrap() error {
return e.err
}
func IsKeyConflictError(err error) bool {
if err == nil {
return false
}
var e *KeyConflictError
return errors.As(err, &e)
}
// NewSubjectKeyConflictError creates a new SubjectKeyConflictError
func NewSubjectKeyConflictError(namespace string, subjectKeys []string) *SubjectKeyConflictError {
return &SubjectKeyConflictError{
err: models.NewGenericConflictError(fmt.Errorf("one or multiple subject keys of [%s] are already associated with an different customer in the namespace %s", strings.Join(subjectKeys, ", "), namespace)),
}
}
var _ models.GenericError = &SubjectKeyConflictError{}
// SubjectKeyConflictError represents an error when a subject key is already associated with a customer
type SubjectKeyConflictError struct {
err error
}
func (e SubjectKeyConflictError) Error() string {
return e.err.Error()
}
func (e SubjectKeyConflictError) Unwrap() error {
return e.err
}
func IsSubjectKeyConflictError(err error) bool {
if err == nil {
return false
}
var e *SubjectKeyConflictError
return errors.As(err, &e)
}
const ErrCodeDeletingCustomerWithActiveSubscriptions models.ErrorCode = "deleting_customer_with_active_subscriptions"
var ErrDeletingCustomerWithActiveSubscriptions = models.NewValidationIssue(
ErrCodeDeletingCustomerWithActiveSubscriptions,
"cannot delete customer with active subscriptions",
)
func NewErrDeletingCustomerWithActiveSubscriptions(subscriptionIDs []string) error {
return ErrDeletingCustomerWithActiveSubscriptions.WithAttr("subscriptions", subscriptionIDs)
}