func()

in pkg/client/sonar/sonar.go [377:405]


func (sc Client) checkProfileExist(requiredProfileName string) (exits bool, profileId string, isDefault bool, error error) {
	resp, err := sc.resty.R().
		Get(fmt.Sprintf("/qualityprofiles/search?qualityProfile=%v", strings.ReplaceAll(requiredProfileName, " ", "+")))
	if err != nil {
		return false, "", false, fmt.Errorf("failed to get default quality profile!: %w", err)
	}
	if resp.IsError() {
		errMsg := fmt.Sprintf("Request for quality profile failed! Response - %v", resp.StatusCode())
		return false, "", false, errors.New(errMsg)
	}

	var qualityProfilesSearchResponse QualityProfilesSearchResponse

	err = json.Unmarshal(resp.Body(), &qualityProfilesSearchResponse)
	if err != nil {
		return false, "", false, fmt.Errorf("%s: %w", resp.Body(), err)
	}
	if qualityProfilesSearchResponse.Profiles == nil {
		return false, "", false, nil
	}
	profiles := qualityProfilesSearchResponse.Profiles
	for index := range profiles {
		if profiles[index].Name == requiredProfileName {
			return true, profiles[index].Key, profiles[index].IsDefault, nil
		}
	}

	return false, "", false, nil
}