File size: 5,066 Bytes
429334c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 | package app
import (
"errors"
"fmt"
"github.com/openmeterio/openmeter/openmeter/customer"
"github.com/openmeterio/openmeter/pkg/models"
)
// AppNotFoundError
func NewAppNotFoundError(appID AppID) *AppNotFoundError {
return &AppNotFoundError{
err: models.NewGenericNotFoundError(
fmt.Errorf("app with id %s not found in %s namespace", appID.ID, appID.Namespace),
),
}
}
var _ models.GenericError = AppNotFoundError{}
type AppNotFoundError struct {
err error
}
func (e AppNotFoundError) Error() string {
return e.err.Error()
}
func (e AppNotFoundError) Unwrap() error {
return e.err
}
// IsAppNotFoundError returns true if the error is a AppNotFoundError.
func IsAppNotFoundError(err error) bool {
if err == nil {
return false
}
var e *AppNotFoundError
return errors.As(err, &e)
}
// AppDefaultNotFoundError
func NewAppDefaultNotFoundError(appType AppType, namespace string) *AppDefaultNotFoundError {
return &AppDefaultNotFoundError{
err: models.NewGenericNotFoundError(
fmt.Errorf("there is no default app for %s type in %s namespace", appType, namespace),
),
}
}
var _ models.GenericError = AppDefaultNotFoundError{}
type AppDefaultNotFoundError struct {
err error
}
func (e AppDefaultNotFoundError) Error() string {
return e.err.Error()
}
func (e AppDefaultNotFoundError) Unwrap() error {
return e.err
}
func IsAppDefaultNotFoundError(err error) bool {
if err == nil {
return false
}
var e *AppDefaultNotFoundError
return errors.As(err, &e)
}
// AppProviderAuthenticationError
func NewAppProviderAuthenticationError(appID *AppID, namespace string, providerError error) *AppProviderAuthenticationError {
var err error
if appID == nil {
err = fmt.Errorf("provider authentication error for app in %s namespace: %w", namespace, providerError)
} else {
err = fmt.Errorf("provider authentication error for app %s: %w", appID.ID, providerError)
}
return &AppProviderAuthenticationError{
err: models.NewGenericUnauthorizedError(err),
}
}
var _ models.GenericError = (*AppProviderAuthenticationError)(nil)
type AppProviderAuthenticationError struct {
err error
}
func (e AppProviderAuthenticationError) Error() string {
return e.err.Error()
}
func (e AppProviderAuthenticationError) Unwrap() error {
return e.err
}
func IsAppProviderAuthenticationError(err error) bool {
if err == nil {
return false
}
var e *AppProviderAuthenticationError
return errors.As(err, &e)
}
// AppProviderError
func NewAppProviderError(appID *AppID, namespace string, providerError error) *AppProviderError {
var err error
if appID == nil {
err = fmt.Errorf("provider error for app in %s namespace: %w", namespace, providerError)
} else {
err = fmt.Errorf("provider error for app %s: %w", appID.ID, providerError)
}
return &AppProviderError{
err: models.NewGenericPreConditionFailedError(err),
}
}
var _ models.GenericError = (*AppProviderError)(nil)
type AppProviderError struct {
err error
}
func (e AppProviderError) Error() string {
return e.err.Error()
}
func (e AppProviderError) Unwrap() error {
return e.err
}
func IsAppProviderError(err error) bool {
if err == nil {
return false
}
var e *AppProviderError
return errors.As(err, &e)
}
// AppProviderPreConditionError
var _ models.GenericError = (*AppProviderPreConditionError)(nil)
func NewAppProviderPreConditionError(appID AppID, condition string) *AppProviderPreConditionError {
return &AppProviderPreConditionError{
err: models.NewGenericPreConditionFailedError(
fmt.Errorf("app does not meet condition for %s: %s", appID.ID, condition),
),
}
}
type AppProviderPreConditionError struct {
err error
}
func (e AppProviderPreConditionError) Error() string {
return e.err.Error()
}
func (e AppProviderPreConditionError) Unwrap() error {
return e.err
}
func IsAppProviderPreConditionError(err error) bool {
if err == nil {
return false
}
var e *AppProviderPreConditionError
return errors.As(err, &e)
}
// AppCustomerPreConditionError
func NewAppCustomerPreConditionError(appID AppID, appType AppType, customerID *customer.CustomerID, condition string) *AppCustomerPreConditionError {
var err error
if customerID == nil {
err = fmt.Errorf("customer does not meet condition for %s app type with id %s in namespace %s: %s", appType, appID.ID, appID.Namespace, condition)
} else {
err = fmt.Errorf("customer with id %s does not meet condition %s for %s app type with id %s in namespace %s", customerID.ID, condition, appType, appID.ID, appID.Namespace)
}
return &AppCustomerPreConditionError{
err: models.NewGenericPreConditionFailedError(err),
}
}
var _ models.GenericError = (*AppCustomerPreConditionError)(nil)
type AppCustomerPreConditionError struct {
err error
}
func (e AppCustomerPreConditionError) Error() string {
return e.err.Error()
}
func (e AppCustomerPreConditionError) Unwrap() error {
return e.err
}
func IsAppCustomerPreConditionError(err error) bool {
if err == nil {
return false
}
var e *AppCustomerPreConditionError
return errors.As(err, &e)
}
|