forked from soltys/go-aftermarketpl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaftermarketpl.go
51 lines (43 loc) · 1.07 KB
/
aftermarketpl.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
package aftermarketpl
//Aftermarketpl structs holds information neede to perform API request
type Aftermarketpl struct {
url string
key string
secret string
}
//New creates new instace of Aftermarketpl struct with default URL
func New(key, secret string) *Aftermarketpl {
return &Aftermarketpl{
key: key,
secret: secret,
url: "https://json.aftermarket.pl",
}
}
//NewCustomURL creates new instace of Aftermarketpl struct with custom URL
func NewCustomURL(key, secret, url string) *Aftermarketpl {
return &Aftermarketpl{
key: key,
secret: secret,
url: url,
}
}
//Do executes action with given request and ouput it into response
func (a *Aftermarketpl) Do(actionName string, request, response interface{}) error {
requestURL, err := a.createActionURL(actionName)
if err != nil {
return err
}
requestBody, err := encodeRequest(request)
if err != nil {
return err
}
responseData, err := a.send(requestURL, requestBody)
if err != nil {
return err
}
err = parseResponse(responseData, &response)
if err != nil {
return err
}
return nil
}