/
HTTPRequestBuilder.go
53 lines (45 loc) · 1.14 KB
/
HTTPRequestBuilder.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
package yaml
//NewHTTPRequestBuilder ...
func NewHTTPRequestBuilder() RequestBuilder {
return RequestBuilder{
data: map[string]interface{}{
"type": "HttpRequest",
},
}
}
//RequestBuilder ...
type RequestBuilder struct {
data map[string]interface{}
}
//Timeout ...
func (instance RequestBuilder) Timeout(value int) RequestBuilder {
instance.data["requestTimeout"] = value
return instance
}
//Method ...
func (instance RequestBuilder) Method(value string) RequestBuilder {
instance.data["method"] = value
return instance
}
//URL ...
func (instance RequestBuilder) URL(value string) RequestBuilder {
instance.data["url"] = value
return instance
}
//Header ...
func (instance RequestBuilder) Header(key string, value string) RequestBuilder {
if _, ok := instance.data["headers"]; !ok {
instance.data["headers"] = map[string]string{}
}
instance.data["headers"].(map[string]string)[key] = value
return instance
}
//Body ...
func (instance RequestBuilder) Body(value string) RequestBuilder {
instance.data["body"] = value
return instance
}
//Build ...
func (instance RequestBuilder) Build() map[string]interface{} {
return instance.data
}