forked from ravendb/ravendb-go-client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhttp.go
132 lines (118 loc) · 2.79 KB
/
http.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package ravendb
import (
"bytes"
"fmt"
"io"
"net/http"
"net/url"
)
var ()
func urlEncode(s string) string {
return url.PathEscape(s)
}
func addChangeVectorIfNotNull(changeVector *string, req *http.Request) {
if changeVector != nil {
req.Header.Add("If-Match", fmt.Sprintf(`"%s"`, *changeVector))
}
}
func addCommonHeaders(req *http.Request) {
req.Header.Add("User-Agent", "ravendb-go-client/4.0.0")
}
func newHttpHead(uri string) (*http.Request, error) {
req, err := http.NewRequest(http.MethodHead, uri, nil)
if err != nil {
return nil, err
}
addCommonHeaders(req)
return req, nil
}
func newHttpGet(uri string) (*http.Request, error) {
req, err := http.NewRequest(http.MethodGet, uri, nil)
if err != nil {
return nil, err
}
addCommonHeaders(req)
return req, nil
}
func newHttpReset(uri string) (*http.Request, error) {
req, err := http.NewRequest("RESET", uri, nil)
if err != nil {
return nil, err
}
addCommonHeaders(req)
return req, nil
}
func newHttpPostReader(uri string, r io.Reader) (*http.Request, error) {
req, err := http.NewRequest(http.MethodPost, uri, r)
if err != nil {
return nil, err
}
addCommonHeaders(req)
return req, nil
}
func NewHttpPost(uri string, data []byte) (*http.Request, error) {
var body io.Reader
if len(data) > 0 {
body = bytes.NewReader(data)
}
req, err := http.NewRequest(http.MethodPost, uri, body)
if err != nil {
return nil, err
}
addCommonHeaders(req)
if len(data) > 0 {
req.Header.Add("Content-Type", "application/json; charset=UTF-8")
}
return req, nil
}
func newHttpPut(uri string, data []byte) (*http.Request, error) {
var body io.Reader
if len(data) > 0 {
body = bytes.NewReader(data)
}
req, err := http.NewRequest(http.MethodPut, uri, body)
if err != nil {
return nil, err
}
addCommonHeaders(req)
if len(data) > 0 {
req.Header.Add("Content-Type", "application/json; charset=UTF-8")
}
return req, nil
}
func newHttpPutReader(uri string, body io.Reader) (*http.Request, error) {
req, err := http.NewRequest(http.MethodPut, uri, body)
if err != nil {
return nil, err
}
addCommonHeaders(req)
return req, nil
}
func newHttpPatch(uri string, data []byte) (*http.Request, error) {
var body io.Reader
if len(data) > 0 {
body = bytes.NewReader(data)
}
req, err := http.NewRequest(http.MethodPatch, uri, body)
if err != nil {
return nil, err
}
addCommonHeaders(req)
if len(data) > 0 {
req.Header.Add("Content-Type", "application/json; charset=UTF-8")
}
return req, nil
}
func newHttpDelete(uri string, data []byte) (*http.Request, error) {
var body io.Reader
if len(data) > 0 {
body = bytes.NewReader(data)
}
req, err := http.NewRequest(http.MethodDelete, uri, body)
if err != nil {
return nil, err
}
addCommonHeaders(req)
req.Header.Add("Content-Type", "application/json; charset=UTF-8")
return req, nil
}