85 lines
3.3 KiB
Go
85 lines
3.3 KiB
Go
package errs
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
var (
|
|
ErrTopicEmpty = errors.New("topic is empty")
|
|
ErrRedisClientNotInitialized = errors.New("redis client not initialized")
|
|
ErrInvalidConsumeMode = errors.New("invalid consume mode")
|
|
ErrInvalidErrorAction = errors.New("invalid error action")
|
|
|
|
ErrRabbitMQConnectFailed = errors.New("failed to connect to RabbitMQ")
|
|
ErrRabbitMQOpenChannelFailed = errors.New("failed to open a channel")
|
|
ErrRabbitMQDeclareExchange = errors.New("failed to declare an exchange")
|
|
ErrRabbitMQPublishMessage = errors.New("failed to publish a message")
|
|
ErrRabbitMQDeclareQueue = errors.New("failed to declare a queue")
|
|
ErrRabbitMQBindQueue = errors.New("failed to bind a queue")
|
|
ErrRabbitMQRegisterConsumer = errors.New("failed to register a consumer")
|
|
ErrRabbitMQConsumerChanClosed = errors.New("consumer channel closed")
|
|
|
|
ErrInitRedisClient = errors.New("init redis client failed")
|
|
|
|
ErrElasticAddressesEmpty = errors.New("elasticsearch addresses are empty")
|
|
ErrElasticPingFailed = errors.New("ping elasticsearch failed")
|
|
ErrElasticClientNil = errors.New("elasticsearch client is nil")
|
|
ErrElasticIndexOrDocID = errors.New("index or docID is empty")
|
|
ErrElasticIndexEmpty = errors.New("index is empty")
|
|
ErrElasticStatus = errors.New("elasticsearch status error")
|
|
ErrElasticStatusDecode = errors.New("elasticsearch status decode error")
|
|
ErrElasticStatusWithBody = errors.New("elasticsearch status body error")
|
|
|
|
ErrMinioInitClient = errors.New("init minio client failed")
|
|
ErrMinioCheckBucketExists = errors.New("check bucket exists failed")
|
|
ErrMinioCreateBucket = errors.New("create bucket failed")
|
|
ErrMinioUploadFile = errors.New("upload file failed")
|
|
ErrMinioGeneratePresigned = errors.New("generate presigned url failed")
|
|
|
|
ErrConsulKVGet = errors.New("consul kv get failed")
|
|
ErrConsulKVSet = errors.New("consul kv set failed")
|
|
ErrConsulBindTargetNil = errors.New("consul config bind target is nil")
|
|
ErrConsulClientNil = errors.New("consul client is nil")
|
|
ErrConsulBindTargetInvalid = errors.New("consul config bind target must be pointer to struct")
|
|
ErrConsulFieldMustBeFunc = errors.New("field must be func()T")
|
|
ErrConsulFieldTagInvalid = errors.New("field tag invalid")
|
|
ErrConsulTagEmpty = errors.New("empty tag")
|
|
ErrConsulTagMissingKey = errors.New("missing key")
|
|
ErrConsulUnsupportedType = errors.New("unsupported type")
|
|
|
|
ErrInvalidGormLogLevel = errors.New("invalid gorm log level")
|
|
ErrPostgresOptionsNil = errors.New("postgres options is nil")
|
|
|
|
ErrLockAcquireFailed = errors.New("failed to acquire lock")
|
|
ErrLockNotHeld = errors.New("lock not held or expired")
|
|
)
|
|
|
|
func Wrap(base error, cause error) error {
|
|
if cause == nil {
|
|
return base
|
|
}
|
|
return fmt.Errorf("%w: %v", base, cause)
|
|
}
|
|
|
|
func Detail(base error, detail string) error {
|
|
if detail == "" {
|
|
return base
|
|
}
|
|
return fmt.Errorf("%w: %s", base, detail)
|
|
}
|
|
|
|
func Detailf(base error, format string, args ...any) error {
|
|
return Detail(base, fmt.Sprintf(format, args...))
|
|
}
|
|
|
|
func DetailWrap(base error, detail string, cause error) error {
|
|
if cause == nil {
|
|
return Detail(base, detail)
|
|
}
|
|
if detail == "" {
|
|
return Wrap(base, cause)
|
|
}
|
|
return fmt.Errorf("%w: %s: %v", base, detail, cause)
|
|
}
|