in whisk/action.go [129:162]
func (action Action) ActionURL(apiHost string, apiPath string, apiVersion string, pkg string) (string, error) {
baseURL, err := GetURLBase(apiHost, apiPath)
if err != nil {
Debug(DbgError, "GetURLBase(%s, %s) failed: %s\n", apiHost, apiPath, err)
return "", err
}
webActionPath := "%s/%s/web/%s/%s/%s"
actionPath := "%s/%s/namespaces/%s/actions/%s"
packagedActionPath := actionPath + "/%s"
namespace := strings.Split(action.Namespace, "/")[0]
namespace = strings.Replace(url.QueryEscape(namespace), "+", "%20", -1)
name := strings.Replace(url.QueryEscape(action.Name), "+", "%20", -1)
pkg = strings.Replace(url.QueryEscape(pkg), "+", "%20", -1)
var actionURL string
if action.WebAction() {
if len(pkg) == 0 {
pkg = "default"
}
actionURL = fmt.Sprintf(webActionPath, baseURL, apiVersion, namespace, pkg, name)
Debug(DbgInfo, "Web action URL: %s\n", actionURL)
} else {
if len(pkg) == 0 {
actionURL = fmt.Sprintf(actionPath, baseURL, apiVersion, namespace, name)
Debug(DbgInfo, "Packaged action URL: %s\n", actionURL)
} else {
actionURL = fmt.Sprintf(packagedActionPath, baseURL, apiVersion, namespace, pkg, name)
Debug(DbgInfo, "Action URL: %s\n", actionURL)
}
}
return actionURL, nil
}