in cli/api/entity_effectors/effectors.go [45:65]
func TriggerEffector(network *net.Network, application, entity, effector string, timeout string, params []string, args []string) (string, error) {
if len(params) != len(args) {
return "", errors.New(strings.Join([]string{"Parameters not supplied:", strings.Join(params, ", ")}, " "))
}
path := fmt.Sprintf("/v1/applications/%s/entities/%s/effectors/%s", application, entity, effector)
if (timeout != "") {
path = fmt.Sprintf("%s?timeout=%s", path, url.QueryEscape(timeout))
}
data := url.Values{}
for i := range params {
data.Set(params[i], args[i])
}
req := network.NewPostRequest(path, bytes.NewBufferString(data.Encode()))
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
req.Header.Add("Content-Length", strconv.Itoa(len(data.Encode())))
body, err := network.SendRequest(req)
if err != nil {
return "", err
}
return string(body), nil
}