github.com/cobalt77/jfrog-client-go@v0.14.5/bintray/services/entitlements/utils.go (about) 1 package entitlements 2 3 import ( 4 "errors" 5 "github.com/cobalt77/jfrog-client-go/bintray/auth" 6 "github.com/cobalt77/jfrog-client-go/bintray/services/versions" 7 "github.com/cobalt77/jfrog-client-go/utils/errorutils" 8 "path" 9 "strings" 10 ) 11 12 func BuildEntitlementsUrl(bintrayDetails auth.BintrayDetails, details *versions.Path) string { 13 return bintrayDetails.GetApiUrl() + createBintrayPath(details) + "/entitlements" 14 } 15 16 func BuildEntitlementUrl(bintrayDetails auth.BintrayDetails, details *versions.Path, entId string) string { 17 return BuildEntitlementsUrl(bintrayDetails, details) + "/" + entId 18 } 19 20 func CreateVersionDetails(versionStr string) (*versions.Path, error) { 21 parts := strings.Split(versionStr, "/") 22 if len(parts) == 1 { 23 err := errorutils.CheckError(errors.New("Argument format should be subject/repository or subject/repository/package or subject/repository/package/version. Got " + versionStr)) 24 if err != nil { 25 return nil, err 26 } 27 } 28 return versions.CreatePath(versionStr) 29 } 30 31 func createBintrayPath(details *versions.Path) string { 32 if details.Version == "" { 33 if details.Package == "" { 34 return path.Join("repos", details.Subject, details.Repo) 35 } 36 return path.Join("packages", details.Subject, details.Repo, details.Package) 37 } 38 return path.Join("packages", details.Subject, details.Repo, details.Package, "versions", details.Version) 39 40 }