-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquest.go
70 lines (61 loc) · 1.37 KB
/
quest.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
package quest
import (
"net/http"
stdurl "net/url"
"strings"
)
// base request client
func Request(method, endpoint string) (r *Requester, err error) {
url, err := stdurl.ParseRequestURI(endpoint)
if err != nil {
return nil, err
}
r = &Requester{
Method: strings.ToUpper(method),
Endpoint: endpoint,
Url: url,
Header: make(http.Header),
timeout: defaultTimeout,
}
return
}
// upload file / data / stream
func Upload(method, endpoint string, files map[string]interface{}) (r *Requester, err error) {
r, err = Request(method, endpoint)
if err != nil {
return
}
r.IsUpload = true
r.Files(files)
return
}
// download file / data / stream to file
func Download(method, endpoint string, destination interface{}) (r *Requester, err error) {
r, err = Request(method, endpoint)
if err != nil {
return
}
r.IsDownload = true
r.Destination(destination)
return
}
// Get Request
func Get(endpoint string) (*Requester, error) {
return Request(GET, endpoint)
}
// Post Request
func Post(endpoint string) (*Requester, error) {
return Request(POST, endpoint)
}
// Put Request
func Put(endpoint string) (*Requester, error) {
return Request(PUT, endpoint)
}
// Patch Request
func Patch(endpoint string) (*Requester, error) {
return Request(PATCH, endpoint)
}
// Delete Request
func Delete(endpoint string) (*Requester, error) {
return Request(DELETE, endpoint)
}