dt_automate/openapi/sdk/params.go
2025-03-06 18:53:00 +08:00

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
}