func Get()

in internal/client/integrations/integrations.go [529:587]


func Get(name string, version string, basicInfo bool, minimal bool, override bool) ([]byte, error) {
	if (basicInfo && minimal) || (basicInfo && override) || (minimal && override) {
		return nil, errors.New("cannot combine basicInfo, minimal and override flags")
	}

	u, _ := url.Parse(apiclient.GetBaseIntegrationURL())
	u.Path = path.Join(u.Path, "integrations", name, "versions", version)
	apiclient.ClientPrintHttpResponse.Set(false)

	respBody, err := apiclient.HttpClient(u.String())

	if !override && !minimal && !basicInfo {
		apiclient.ClientPrintHttpResponse.Set(apiclient.GetCmdPrintHttpResponseSetting())
		apiclient.PrettyPrint(respBody)
		return respBody, nil
	}

	iversion := integrationVersion{}
	err = json.Unmarshal(respBody, &iversion)
	if err != nil {
		return nil, err
	}

	if basicInfo {
		var respBasicBody []byte
		apiclient.ClientPrintHttpResponse.Set(apiclient.GetCmdPrintHttpResponseSetting())
		if respBasicBody, err = getBasicInfo(respBody); err != nil {
			return nil, err
		}
		apiclient.PrettyPrint(respBasicBody)
		return respBasicBody, nil
	}

	if minimal {
		eversion := convertInternalToExternal(iversion)
		respExtBody, err := json.Marshal(eversion)
		if err != nil {
			return nil, err
		}
		apiclient.ClientPrintHttpResponse.Set(apiclient.GetCmdPrintHttpResponseSetting())
		apiclient.PrettyPrint(respExtBody)
		return respExtBody, nil
	}

	if override {
		var or overrides
		var respOvrBody []byte
		if or, err = extractOverrides(iversion); err != nil {
			return nil, err
		}
		if respOvrBody, err = json.Marshal(or); err != nil {
			return nil, err
		}
		apiclient.ClientPrintHttpResponse.Set(apiclient.GetCmdPrintHttpResponseSetting())
		apiclient.PrettyPrint(respOvrBody)
		return respOvrBody, nil
	}
	return respBody, err
}