Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
BitgetLimited
GitHub Repository: BitgetLimited/V3-bitget-api-sdk
Path: blob/master/bitget-golang-sdk-api/internal/utils.go
732 views
1
package internal
2
3
import (
4
"bitget/constants"
5
"encoding/json"
6
"errors"
7
"net/http"
8
"sort"
9
"strconv"
10
"strings"
11
"time"
12
)
13
14
func TimesStamp() string {
15
timesStamp := time.Now().Unix() * 1000
16
return strconv.FormatInt(timesStamp, 10)
17
}
18
19
func TimesStampSec() string {
20
timesStamp := time.Now().Unix()
21
return strconv.FormatInt(timesStamp, 10)
22
}
23
24
/**
25
* get header
26
*/
27
func Headers(request *http.Request, apikey string, timestamp string, sign string, passphrase string) {
28
request.Header.Add(constants.ContentType, constants.ApplicationJson)
29
request.Header.Add(constants.BgAccessKey, apikey)
30
request.Header.Add(constants.BgAccessSign, sign)
31
request.Header.Add(constants.BgAccessTimestamp, timestamp)
32
request.Header.Add(constants.BgAccessPassphrase, passphrase)
33
}
34
35
func BuildJsonParams(params map[string]string) (string, error) {
36
if params == nil {
37
return "", errors.New("illegal parameter")
38
}
39
data, err := json.Marshal(params)
40
if err != nil {
41
return "", errors.New("json convert string error")
42
}
43
jsonBody := string(data)
44
return jsonBody, nil
45
}
46
47
func BuildGetParams(params map[string]string) string {
48
//urlParams := url.Values{}
49
//if params != nil && len(params) > 0 {
50
// for k := range params {
51
// urlParams.Add(k, params[k])
52
// }
53
//}
54
//return "?" + urlParams.Encode()
55
if len(params) == 0 {
56
return ""
57
}
58
return "?" + SortParams(params)
59
}
60
61
func SortParams(params map[string]string) string {
62
keys := make([]string, len(params))
63
i := 0
64
for k, _ := range params {
65
keys[i] = k
66
i++
67
}
68
sort.Strings(keys)
69
sorted := make([]string, len(params))
70
i = 0
71
for _, k := range keys {
72
//sorted[i] = k + "=" + url.QueryEscape(params[k])
73
sorted[i] = k + "=" + params[k]
74
i++
75
}
76
return strings.Join(sorted, "&")
77
}
78
79
func JSONToMap(str string) map[string]interface{} {
80
81
var tempMap map[string]interface{}
82
83
err := json.Unmarshal([]byte(str), &tempMap)
84
85
if err != nil {
86
panic(err)
87
}
88
89
return tempMap
90
}
91
92
func NewParams() map[string]string {
93
return make(map[string]string)
94
}
95
96
func ToJson(v interface{}) (string, error) {
97
result, err := json.Marshal(v)
98
if err != nil {
99
return "", err
100
}
101
return string(result), nil
102
}
103
104