in internal/cmd/integrations/integrations.go [90:128]
func getLatestVersion(name string) (version string, err error) {
var listBody []byte
apiclient.DisableCmdPrintHttpResponse()
defer apiclient.EnableCmdPrintHttpResponse()
// list integration versions, order by state=ACTIVE, page size = 1 and return basic info
if listBody, err = integrations.ListVersions(name, 1, "", "state=ACTIVE",
"snapshot_number", false, false, true); err != nil {
return "", fmt.Errorf("unable to list versions: %v", err)
}
if string(listBody) != "{}" {
if version, err = integrations.GetIntegrationVersion(listBody); err != nil {
return "", err
}
} else {
// list integration versions, order by state=SNAPSHOT, page size = 1 and return basic info
if listBody, err = integrations.ListVersions(name, 1, "", "state=SNAPSHOT",
"snapshot_number", false, false, true); err != nil {
return "", fmt.Errorf("unable to list versions: %v", err)
}
if string(listBody) != "{}" {
if version, err = integrations.GetIntegrationVersion(listBody); err != nil {
return "", err
}
} else {
if listBody, err = integrations.ListVersions(name, 1, "", "state=DRAFT",
"snapshot_number", false, false, true); err != nil {
return "", fmt.Errorf("unable to list versions: %v", err)
}
if string(listBody) != "{}" {
if version, err = integrations.GetIntegrationVersion(listBody); err != nil {
return "", err
}
}
}
}
return version, nil
}