package io.cattle.platform.api.pubsub.util;
import io.cattle.platform.api.auth.Policy;
import io.cattle.platform.api.auth.impl.PolicyOptions;
public class SubscriptionUtils {
public static final String POLICY_SUBSCRIPTION_STYLE = "subscription.style";
public static final String POLICY_SUBSCRIPTION_QUALIFIER = "subscription.qualifier";
public static final String POLICY_SUBSCRIPTION_QUALIFIER_VALUE = "subscription.qualifier.value";
public enum SubscriptionStyle {
RAW, QUALIFIED
}
public static String getSubscriptionQualifier(Policy policy) {
return policy.getOption(POLICY_SUBSCRIPTION_QUALIFIER);
}
public static String getSubscriptionQualifierValue(Policy policy) {
String value = policy.getOption(POLICY_SUBSCRIPTION_QUALIFIER_VALUE);
return value == null ? Long.toString(policy.getAccountId()) : value;
}
public static SubscriptionStyle getSubscriptionStyle(Policy policy) {
return getSubscriptionStyleFromString(policy.getOption(POLICY_SUBSCRIPTION_STYLE));
}
public static SubscriptionStyle getSubscriptionStyle(PolicyOptions policyOptions) {
return getSubscriptionStyleFromString(policyOptions.getOption(POLICY_SUBSCRIPTION_STYLE));
}
public static SubscriptionStyle getSubscriptionStyleFromString(String style) {
if (style == null) {
return SubscriptionStyle.QUALIFIED;
}
try {
return SubscriptionStyle.valueOf(style.toUpperCase());
} catch (IllegalArgumentException e) {
return SubscriptionStyle.QUALIFIED;
}
}
}