@@ -76,27 +76,26 @@ func GetResponse(data any, method, url, auth string, headers []Header) (*http.Re
76
76
}
77
77
78
78
// JSON returns JSON response from http request
79
- // if response.code is http.StatusOK (200) returns body decoded to resp
80
- // if response.code is not http.Status ok returns response(*http.Response) with err set to
81
- // 'non ok response code'
82
- // if json decode err returns response and err set to 'json decode err'
83
- // for any other err returns nil and err
84
- func GetJSON [T any , R any ](data any , resp T , errResponse R , method , url , auth string , headers []Header ) (any , error ) {
79
+ // if response.code is http.StatusOK (200) returns resp, nil, nil
80
+ // if response.code is not http.Status ok returns nil, errResponse, err='non ok response code'
81
+ // if json decode err returns nil, nil, err set to 'json decode err'
82
+ // for any other err returns nil, nil, err
83
+ func GetJSON [T any , R any ](data any , resp T , errResponse R , method , url , auth string , headers []Header ) (T , R , error ) {
85
84
response , err := GetResponse (data , method , url , auth , headers )
86
85
if err != nil {
87
- return nil , err
86
+ return resp , errResponse , err
88
87
}
89
88
defer response .Body .Close ()
90
89
if response .StatusCode != http .StatusOK {
91
90
if err := json .NewDecoder (response .Body ).Decode (& errResponse ); err != nil {
92
- return response , ErrJSON
91
+ return resp , errResponse , ErrJSON
93
92
}
94
- return errResponse , ErrStatus
93
+ return resp , errResponse , ErrStatus
95
94
}
96
95
if err := json .NewDecoder (response .Body ).Decode (& resp ); err != nil {
97
- return response , ErrJSON
96
+ return resp , errResponse , ErrJSON
98
97
}
99
- return resp , nil
98
+ return resp , errResponse , nil
100
99
}
101
100
102
101
// GetResponse returns response from http endpoint
@@ -105,6 +104,6 @@ func (e *Endpoint) GetResponse() (*http.Response, error) {
105
104
}
106
105
107
106
// GetJSON returns JSON received from http endpoint
108
- func (e * JSONEndpoint [T , R ]) GetJSON (response T , errResponse R ) (any , error ) {
107
+ func (e * JSONEndpoint [T , R ]) GetJSON (response T , errResponse R ) (T , R , error ) {
109
108
return GetJSON (e .Data , response , errResponse , e .Method , e .URL + e .Route , e .Authorization , e .Headers )
110
109
}
0 commit comments