package api import ( "bytes" "encoding/json" "fmt" "io" ) func GetDeficiencyById(session *Session, deficiencyId string) (map[string]interface{}, error) { url := fmt.Sprintf("%s/deficiency/%s", BaseURL, deficiencyId) req, err := AuthenticatedRequest(session, "GET", url, nil) if err != nil { return nil, fmt.Errorf("error creating request: %v", err) } resp, err := DoAuthenticatedRequest(session, req) if err != nil { return nil, fmt.Errorf("error sending request: %v", err) } defer resp.Body.Close() if resp.StatusCode != 200 { return nil, fmt.Errorf("API request failed with status code: %d", resp.StatusCode) } body, err := io.ReadAll(resp.Body) if err != nil { return nil, fmt.Errorf("error reading response body: %v", err) } var result map[string]interface{} d := json.NewDecoder(bytes.NewReader(body)) d.UseNumber() if err := d.Decode(&result); err != nil { return nil, fmt.Errorf("error decoding response: %v", err) } return result, nil }