You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.0 KiB
41 lines
1.0 KiB
package api
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"fmt"
|
|
"io"
|
|
"marmic/servicetrade-toolbox/internal/auth"
|
|
)
|
|
|
|
func GetDeficiencyById(session *auth.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
|
|
}
|
|
|