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  }