Skip to content

Commit 24bc3ab

Browse files
fixed by parsing the right API response
1 parent 5f001ac commit 24bc3ab

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

codacy-client/client.go

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,33 @@ func getAllPages[T any](
107107
return allResults, nil
108108
}
109109

110+
// parseDefaultPatternConfigurations parses the response body into pattern configurations
111+
func parseDefaultPatternConfigurations(response []byte) ([]domain.PatternConfiguration, string, error) {
112+
var objmap map[string]json.RawMessage
113+
if err := json.Unmarshal(response, &objmap); err != nil {
114+
return nil, "", fmt.Errorf("failed to unmarshal response: %w", err)
115+
}
116+
117+
var patternResponses []domain.PatternDefinition
118+
if err := json.Unmarshal(objmap["data"], &patternResponses); err != nil {
119+
return nil, "", fmt.Errorf("failed to unmarshal patterns: %w", err)
120+
}
121+
122+
patternConfigurations := make([]domain.PatternConfiguration, len(patternResponses))
123+
for i, patternDef := range patternResponses {
124+
patternConfigurations[i] = domain.PatternConfiguration{
125+
PatternDefinition: patternDef,
126+
Parameters: patternDef.Parameters,
127+
Enabled: patternDef.Enabled,
128+
}
129+
}
130+
131+
return patternConfigurations, "", nil
132+
}
133+
110134
// parsePatternConfigurations parses the response body into pattern configurations
111135
func parsePatternConfigurations(response []byte) ([]domain.PatternConfiguration, string, error) {
136+
112137
var objmap map[string]json.RawMessage
113138
if err := json.Unmarshal(response, &objmap); err != nil {
114139
return nil, "", fmt.Errorf("failed to unmarshal response: %w", err)
@@ -141,7 +166,8 @@ func parsePatternConfigurations(response []byte) ([]domain.PatternConfiguration,
141166
// GetDefaultToolPatternsConfig fetches the default patterns for a tool
142167
func GetDefaultToolPatternsConfig(initFlags domain.InitFlags, toolUUID string) ([]domain.PatternConfiguration, error) {
143168
baseURL := fmt.Sprintf("%s/api/v3/tools/%s/patterns?enabled=true", CodacyApiBase, toolUUID)
144-
return getAllPages(baseURL, initFlags, parsePatternConfigurations)
169+
170+
return getAllPages(baseURL, initFlags, parseDefaultPatternConfigurations)
145171
}
146172

147173
// GetRepositoryToolPatterns fetches the patterns for a tool in a repository

0 commit comments

Comments
 (0)