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 }