63 lines
1.5 KiB
Go
63 lines
1.5 KiB
Go
package rabbitmqamqp
|
|
|
|
import (
|
|
"crypto/md5"
|
|
"encoding/base64"
|
|
"fmt"
|
|
"github.com/google/uuid"
|
|
"strings"
|
|
)
|
|
|
|
// public consts
|
|
|
|
const StreamFilterValue = "x-stream-filter-value"
|
|
|
|
const (
|
|
responseCode200 = 200
|
|
responseCode201 = 201
|
|
responseCode204 = 204
|
|
responseCode404 = 404
|
|
responseCode409 = 409
|
|
commandPut = "PUT"
|
|
commandGet = "GET"
|
|
commandPost = "POST"
|
|
commandDelete = "DELETE"
|
|
commandReplyTo = "$me"
|
|
managementNodeAddress = "/management"
|
|
linkPairName = "management-link-pair"
|
|
exchanges = "exchanges"
|
|
key = "key"
|
|
queues = "queues"
|
|
bindings = "bindings"
|
|
authTokens = "/auth/tokens"
|
|
)
|
|
|
|
func validatePositive(label string, value int64) error {
|
|
if value < 0 {
|
|
return fmt.Errorf("value for %s must be positive, got %d", label, value)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func generateNameWithDefaultPrefix() string {
|
|
return generateName("client.gen-")
|
|
}
|
|
|
|
// generateName generates a unique name with the given prefix
|
|
func generateName(prefix string) string {
|
|
uid := uuid.New()
|
|
uuidBytes := []byte(uid.String())
|
|
md5obj := md5.New()
|
|
digest := md5obj.Sum(uuidBytes)
|
|
result := base64.StdEncoding.EncodeToString(digest)
|
|
result = strings.ReplaceAll(result, "+", "-")
|
|
result = strings.ReplaceAll(result, "/", "_")
|
|
result = strings.ReplaceAll(result, "=", "")
|
|
return prefix + result
|
|
}
|
|
|
|
func isStringNilOrEmpty(str *string) bool {
|
|
return str == nil || len(*str) == 0
|
|
|
|
}
|