github.com/Axway/agent-sdk@v1.1.101/pkg/apic/definitions/util.go (about) 1 package definitions 2 3 import ( 4 "strings" 5 6 management "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/management/v1alpha1" 7 ) 8 9 // GetSubscriptionNameFromAccessRequest - Returns the subscription name from access request references 10 func GetSubscriptionNameFromAccessRequest(ar *management.AccessRequest) string { 11 if ar == nil { 12 return "" 13 } 14 15 subscriptionName := "" 16 subsRefName := getSubscriptionRefName(ar) 17 if subsRefName != "" { 18 refElements := strings.Split(subsRefName, "/") 19 if len(refElements) == 2 && refElements[0] == "catalog" { 20 subscriptionName = refElements[1] 21 } 22 } 23 return subscriptionName 24 } 25 26 func getSubscriptionRefName(ar *management.AccessRequest) string { 27 for _, ref := range ar.References { 28 switch arRef := ref.(type) { 29 case map[string]interface{}: 30 kind := arRef["kind"] 31 if kind == Subscription { 32 return arRef["name"].(string) 33 } 34 case management.AccessRequestReferencesSubscription: 35 return getSubscriptionName(&arRef) 36 case *management.AccessRequestReferencesSubscription: 37 return getSubscriptionName(arRef) 38 } 39 } 40 return "" 41 } 42 43 func getSubscriptionName(arRef *management.AccessRequestReferencesSubscription) string { 44 if arRef.Kind == Subscription { 45 return arRef.Name 46 } 47 return "" 48 }