Files

38 lines
1.2 KiB
Go
Raw Permalink Normal View History

package billing
import "errors"
var (
ErrPlanNameRequired = errors.New("name required")
ErrPlanNotFound = errors.New("plan not found")
ErrAmountRequired = errors.New("amount required")
ErrStripeNoCustomer = errors.New("no stripe customer for this company — complete a checkout first")
)
// ClientError reports whether err is a known client-facing billing/Stripe error.
func ClientError(err error) (msg string, ok bool) {
switch {
case err == nil:
return "", false
case errors.Is(err, ErrPlanNameRequired),
errors.Is(err, ErrPlanNotFound),
errors.Is(err, ErrAmountRequired),
errors.Is(err, ErrStripeNotConfigured),
2026-08-16 11:37:42 +02:00
errors.Is(err, ErrStripeSelfServeUnavailable),
errors.Is(err, ErrStripePlanUnsupported),
errors.Is(err, ErrStripePriceMissing),
errors.Is(err, ErrStripeNoCustomer),
errors.Is(err, ErrInsufficientCredits),
errors.Is(err, ErrProductLimitExceeded),
errors.Is(err, ErrAIRequiresUpgrade),
errors.Is(err, ErrEPRELRequiresUpgrade),
errors.Is(err, ErrUnknownFeatureKey),
errors.Is(err, ErrUnknownFeatureSection),
errors.Is(err, ErrInvalidFeatureGates),
errors.Is(err, ErrFeatureDisabled):
return err.Error(), true
default:
return "", false
}
}