internal/utils/namespace.go (38 lines of code) (raw):
package utils
import "strings"
const namespaceSeparator = "%"
const retryPrefix = "%RETRY%"
const dlqPrefix = "%DLQ%"
func WrapNamespace(namespace, resourceWithOutNamespace string) string {
	if IsEmpty(namespace) || IsEmpty(resourceWithOutNamespace) {
		return resourceWithOutNamespace
	}
	if isAlreadyWithNamespace(resourceWithOutNamespace, namespace) {
		return resourceWithOutNamespace
	}
	return namespace + namespaceSeparator + resourceWithOutNamespace
}
func isAlreadyWithNamespace(resource, namespace string) bool {
	if IsEmpty(namespace) || IsEmpty(resource) {
		return false
	}
	return strings.Contains(resource, namespace+namespaceSeparator)
}
func WithoutNamespace(resource string) string {
	if len(resource) == 0 {
		return resource
	}
	resourceWithoutNamespace := ""
	if strings.HasPrefix(resource, retryPrefix) {
		resourceWithoutNamespace += retryPrefix
	} else if strings.HasPrefix(resource, dlqPrefix) {
		resourceWithoutNamespace += dlqPrefix
	}
	index := strings.LastIndex(resource, namespaceSeparator)
	if index > 0 {
		resourceWithoutNamespace += resource[index+1:]
	} else {
		resourceWithoutNamespace = resource
	}
	return resourceWithoutNamespace
}