Skip to content

Commit 157a7cd

Browse files
committed
feat: add toObject and toString methods.
1 parent 8012815 commit 157a7cd

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

wrapper.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package request
2+
3+
import (
4+
"encoding/json"
5+
"io"
6+
"net/http"
7+
)
8+
9+
func ToObject[T any](resp *http.Response, err error) (*T, error) {
10+
if err != nil {
11+
return nil, err
12+
}
13+
14+
defer resp.Body.Close()
15+
16+
out := new(T)
17+
18+
contentType := resp.Header.Get("Content-Type")
19+
switch contentType {
20+
case "application/json":
21+
if err := json.NewDecoder(resp.Body).Decode(&out); err != nil {
22+
return nil, err
23+
}
24+
}
25+
26+
return out, nil
27+
}
28+
29+
func ToString(resp *http.Response, err error) (string, error) {
30+
if err != nil {
31+
return "", err
32+
}
33+
34+
data, err := io.ReadAll(resp.Body)
35+
if err != nil {
36+
return "", err
37+
}
38+
39+
resp.Body.Close()
40+
41+
return string(data), nil
42+
}

0 commit comments

Comments
 (0)