142 lines
3.2 KiB
Go
142 lines
3.2 KiB
Go
![]() |
package sdk
|
||
|
|
||
|
import (
|
||
|
"strconv"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
signatureHeader string = "x-signature"
|
||
|
signatureMethodHeader string = "x-signature-method"
|
||
|
signatureVersionHeader string = "x-signature-version"
|
||
|
timestampHeader string = "x-timestamp"
|
||
|
nonceHeader string = "x-nonce"
|
||
|
contentTypeHeader string = "Content-Type"
|
||
|
accessKeyIdHeader string = "x-accesskeyid"
|
||
|
regionIdHeader string = "x-regionid"
|
||
|
timezoneHeader string = "x-timezone"
|
||
|
apiVersionHeader string = "x-api-version"
|
||
|
securityTokenHeader string = "x-security-token"
|
||
|
localeHeader string = "x-locale"
|
||
|
hostHeader string = "Host"
|
||
|
)
|
||
|
|
||
|
type Params struct {
|
||
|
headers map[string]string
|
||
|
requestMethod string
|
||
|
uri string
|
||
|
requestBody string
|
||
|
secretKey string
|
||
|
}
|
||
|
|
||
|
func NewParams() *Params {
|
||
|
return &Params{headers: map[string]string{
|
||
|
signatureMethodHeader: "HMAC-SHA256",
|
||
|
signatureVersionHeader: "1.0",
|
||
|
timestampHeader: time.Now().Format("2006-01-02T15:04:05Z"),
|
||
|
nonceHeader: strconv.Itoa(int(time.Now().UnixNano())),
|
||
|
contentTypeHeader: "application/json",
|
||
|
}}
|
||
|
}
|
||
|
|
||
|
func (p *Params) Headers() map[string]string {
|
||
|
return p.headers
|
||
|
}
|
||
|
|
||
|
func (p *Params) RequestMethod(requestMethod string) *Params {
|
||
|
p.requestMethod = requestMethod
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) Uri(uri string) *Params {
|
||
|
p.uri = uri
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) RequestBody(requestBody string) *Params {
|
||
|
p.requestBody = requestBody
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) SecretKey(secretKey string) *Params {
|
||
|
p.secretKey = secretKey
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) Signature(signature string) *Params {
|
||
|
p.headers[signatureHeader] = signature
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) RegionId(regionId string) *Params {
|
||
|
p.headers[regionIdHeader] = regionId
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) AccessKeyId(accesskeyId string) *Params {
|
||
|
p.headers[accessKeyIdHeader] = accesskeyId
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) SignatureMethod(signatureMethod string) *Params {
|
||
|
p.headers[signatureMethodHeader] = signatureMethod
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) SignatureVersion(signatureVersion string) *Params {
|
||
|
p.headers[signatureVersionHeader] = signatureVersion
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) Nonce(nonce string) *Params {
|
||
|
p.headers[nonceHeader] = nonce
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) Timestamp(timestamp string) *Params {
|
||
|
p.headers[timestampHeader] = timestamp
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) Timezone(timezone string) *Params {
|
||
|
p.headers[timezoneHeader] = timezone
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) ApiVersion(apiVersion string) *Params {
|
||
|
p.headers[apiVersionHeader] = apiVersion
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) SecurityToken(securityToken string) *Params {
|
||
|
p.headers[securityTokenHeader] = securityToken
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) Locale(locale string) *Params {
|
||
|
p.headers[localeHeader] = locale
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) ContentType(contentType string) *Params {
|
||
|
p.headers[contentTypeHeader] = contentType
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func (p *Params) Host(host string) *Params {
|
||
|
p.headers[hostHeader] = host
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
// Deprecated
|
||
|
func (p *Params) PutParams(params map[string]string) *Params {
|
||
|
return p.PutQueryParams(params)
|
||
|
}
|
||
|
|
||
|
func (p *Params) PutQueryParams(params map[string]string) *Params {
|
||
|
for k, v := range params {
|
||
|
p.headers[k] = v
|
||
|
}
|
||
|
return p
|
||
|
}
|