7
0

Compare commits

..

No commits in common. "master" and "v1.1.4" have entirely different histories.

60 changed files with 67 additions and 2371 deletions

View File

@ -172,8 +172,3 @@ func CreateDemoTestResponse() *DemoTestResponse {
} }
``` ```
终端调试打开方式, 需要在系统环境变量上加入(三选一):
```
DEBUG=sdk,signer,request
```

View File

@ -1,13 +0,0 @@
package credentials
type AliAppcodeCredential struct {
AccessKeyId string `json:"access_key_id" yaml:"access_key_id"`
AccessKeySecret string `json:"access_key_secret" yaml:"access_key_secret"`
}
func NewAliAppcodeCredential(accessKeyId, accessKeySecret string) *AliAppcodeCredential {
return &AliAppcodeCredential{
AccessKeyId: accessKeyId,
AccessKeySecret: accessKeySecret,
}
}

View File

@ -1,160 +0,0 @@
package auth
import (
"bytes"
"errors"
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/utils"
"net/http"
"net/url"
"sort"
"strconv"
"strings"
"time"
)
func signRaliRequest(request requests.AcsRequest, signer Signer) (err error) {
err = completeRaliSignParams(request, signer)
if err != nil {
return
}
stringToSign := buildRaliStringToSign(request)
request.SetStringToSign(stringToSign)
signature := signer.Sign(stringToSign, "")
request.GetHeaders()["X-Ca-Signature"] = signature
debug("GrSdk sign: %s", signature)
debug("GrSdk sign string: %s", strings.ReplaceAll(stringToSign, "\n", "#"))
debug("GrSdk sign: \r\n")
return
}
func completeRaliSignParams(request requests.AcsRequest, signer Signer) (err error) {
request.GetHeaders()["X-Ca-Timestamp"] = fmt.Sprintf("%d", time.Now().Unix()*1000)
request.GetHeaders()["X-Ca-Signature-Method"] = signer.GetName()
request.GetHeaders()["X-Ca-Nonce"] = utils.GetUUID()
request.GetHeaders()["X-Ca-Key"], err = signer.GetAccessKeyId()
if request.GetEnv() != "" {
request.GetHeaders()["X-Ca-Stage"] = request.GetEnv()
}
if request.GetMethod() == requests.POST {
request.GetHeaders()["Content-type"] = requests.Form
}
formString := utils.GetUrlFormedMap(request.GetFormParams())
request.SetContent(bytes.NewBufferString(formString).Bytes())
return
}
func buildRaliSignHeader(request requests.AcsRequest) (str1, str2 string) {
headParams := make(map[string]string)
signatureHeaders := make([]string, 0)
for key, val := range request.GetHeaders() {
headParams[key] = val
}
delete(headParams, "X-Ca-Signature")
delete(headParams, "X-Ca-Signature-Headers")
delete(headParams, "Accept")
delete(headParams, "Content-MD5")
delete(headParams, "Content-Type")
delete(headParams, "Date")
for key, _ := range headParams {
signatureHeaders = append(signatureHeaders, key)
}
sort.Strings(signatureHeaders)
for _, key := range signatureHeaders {
str1 += fmt.Sprintf("%s:%s\n", key, headParams[key])
}
return strings.TrimRight(str1, "\n"), strings.Join(signatureHeaders, ",")
}
func buildRaliStringToSign(request requests.AcsRequest) (stringToSign string) {
signParams := make(map[string]string)
for key, value := range request.GetQueryParams() {
signParams[key] = value
}
if strings.ToUpper(request.GetMethod()) == requests.POST {
for key, value := range request.GetFormParams() {
signParams[key] = value
}
}
str1, str2 := buildRaliSignHeader(request)
stringToSign = request.GetMethod() + "\n"
stringToSign += request.GetHeaders()["Accept"] + "\n\n"
stringToSign += request.GetHeaders()["Content-type"] + "\n\n"
stringToSign += str1 + "\n"
stringToSign += request.GetActionName() + "?" + utils.GetUrlByKeySort(signParams)
request.GetHeaders()["X-Ca-Signature-Headers"] = str2
//stringToSign = utils.GetUrlFormedMap(signParams)
//stringToSign = strings.Replace(stringToSign, "+", "%20", -1)
//stringToSign = strings.Replace(stringToSign, "*", "%2A", -1)
//stringToSign = strings.Replace(stringToSign, "%7E", "~", -1)
//stringToSign = url.QueryEscape(stringToSign)
//stringToSign = request.GetMethod() + "&%2F&" + stringToSign
return
}
func unsignRaliRequest(request *http.Request, signer Signer) (err error) {
signParams := make(map[string]string)
for key, value := range request.URL.Query() {
signParams[key] = value[0]
}
if strings.ToUpper(request.Method) == requests.POST {
for key, value := range request.Form {
signParams[key] = value[0]
}
}
if accessKey, err := signer.GetAccessKeyId(); err != nil {
return err
} else if accessKey == "" {
return errors.New("access key is not allow empty")
} else if accessKey != signParams["access_key"] {
return errors.New("illegal access key")
}
signValue, ok := signParams["sign"]
if !ok {
return errors.New("sign value is not exists")
} else {
delete(signParams, "sign")
}
stringToSign := utils.GetUrlFormedMap(signParams)
stringToSign = strings.Replace(stringToSign, "+", "%20", -1)
stringToSign = strings.Replace(stringToSign, "*", "%2A", -1)
stringToSign = strings.Replace(stringToSign, "%7E", "~", -1)
stringToSign = url.QueryEscape(stringToSign)
stringToSign = request.Method + "&%2F&" + stringToSign
debug("GrSdk sign: %s", stringToSign)
if timestamp, err := strconv.ParseInt(signParams["access_time"], 10, 64); err != nil {
return err
} else {
if time.Unix(timestamp, 0).Before(time.Now().Add(-5 * time.Minute)) {
err = errors.New("sign timeout 5 minute")
}
}
if signer.Sign(stringToSign, "&") != signValue {
return errors.New("sign string is not correct")
}
return
}

View File

@ -1,128 +0,0 @@
package auth
import (
"bytes"
"errors"
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/utils"
"net/http"
"net/url"
"strconv"
"strings"
"time"
)
func signRoaRequest(request requests.AcsRequest, signer Signer) (err error) {
err = completeRoaSignParams(request, signer)
if err != nil {
return
}
if _, isContainsSign := request.GetQueryParams()["sign"]; isContainsSign {
delete(request.GetQueryParams(), "sign")
}
stringToSign := buildRoaStringToSign(request)
request.SetStringToSign(stringToSign)
signature := signer.Sign(stringToSign, "&")
request.GetQueryParams()["sign"] = signature
debug("GrSdk sign: %s", signature)
debug("GrSdk sign string: %s", stringToSign)
debug("GrSdk sign: \r\n")
return
}
func completeRoaSignParams(request requests.AcsRequest, signer Signer) (err error) {
var accessKeyFrom string
if accessKeyFrom, err = signer.GetAccessKeyFrom(); err != nil {
return
}
queryParams := request.GetQueryParams()
queryParams["access_time"] = fmt.Sprintf("%d", time.Now().Unix())
queryParams["access_key"], err = signer.GetAccessKeyId()
queryParams["access_from"] = accessKeyFrom
if err != nil {
return
}
if request.GetMethod() == requests.POST {
request.GetHeaders()["Content-type"] = requests.Form
}
request.GetHeaders()["Gr-Sdk-From"] = accessKeyFrom
formString := utils.GetUrlFormedMap(request.GetFormParams())
request.SetContent(bytes.NewBufferString(formString).Bytes())
return
}
func buildRoaStringToSign(request requests.AcsRequest) (stringToSign string) {
signParams := make(map[string]string)
for key, value := range request.GetQueryParams() {
signParams[key] = value
}
if strings.ToUpper(request.GetMethod()) == requests.POST {
for key, value := range request.GetFormParams() {
signParams[key] = value
}
}
stringToSign = utils.GetUrlFormedMap(signParams)
stringToSign = strings.Replace(stringToSign, "+", "%20", -1)
stringToSign = strings.Replace(stringToSign, "*", "%2A", -1)
stringToSign = strings.Replace(stringToSign, "%7E", "~", -1)
stringToSign = url.QueryEscape(stringToSign)
stringToSign = request.GetMethod() + "&%2F&" + stringToSign
return
}
func unsignRoaRequest(request *http.Request, signer Signer) (err error) {
signParams := make(map[string]string)
for key, value := range request.URL.Query() {
signParams[key] = value[0]
}
if strings.ToUpper(request.Method) == requests.POST {
for key, value := range request.Form {
signParams[key] = value[0]
}
}
if accessKey, err := signer.GetAccessKeyId(); err != nil {
return err
} else if accessKey == "" {
return errors.New("access key is not allow empty")
} else if accessKey != signParams["access_key"] {
return errors.New("illegal access key")
}
signValue, ok := signParams["sign"]
if !ok {
return errors.New("sign value is not exists")
} else {
delete(signParams, "sign")
}
stringToSign := utils.GetUrlFormedMap(signParams)
stringToSign = strings.Replace(stringToSign, "+", "%20", -1)
stringToSign = strings.Replace(stringToSign, "*", "%2A", -1)
stringToSign = strings.Replace(stringToSign, "%7E", "~", -1)
stringToSign = url.QueryEscape(stringToSign)
stringToSign = request.Method + "&%2F&" + stringToSign
debug("GrSdk sign: %s", stringToSign)
if timestamp, err := strconv.ParseInt(signParams["access_time"], 10, 64); err != nil {
return err
} else {
if time.Unix(timestamp, 0).Before(time.Now().Add(-5 * time.Minute)) {
err = errors.New("sign timeout 5 minute")
}
}
if signer.Sign(stringToSign, "&") != signValue {
return errors.New("sign string is not correct")
}
return
}

View File

@ -24,8 +24,6 @@ func NewSignerWithCredential(credential Credential, commonApi func(request *requ
signer = signers.NewAccessKeySigner(instance.ToAccessKeyCredential()) signer = signers.NewAccessKeySigner(instance.ToAccessKeyCredential())
case *credentials.StdTokenCredential: case *credentials.StdTokenCredential:
signer = signers.NewStsTokenSigner(instance) signer = signers.NewStsTokenSigner(instance)
case *credentials.AliAppcodeCredential:
signer = signers.NewAliAppcodeSigner(instance)
default: default:
err = errors.New("UnsupportedCredentialErrorCode = SDK.UnsupportedCredential") err = errors.New("UnsupportedCredentialErrorCode = SDK.UnsupportedCredential")
} }
@ -33,19 +31,8 @@ func NewSignerWithCredential(credential Credential, commonApi func(request *requ
} }
func Sign(request requests.AcsRequest, signer Signer) (err error) { func Sign(request requests.AcsRequest, signer Signer) (err error) {
switch signer.(type) {
case *signers.AliAppcodeSigner:
err = signRaliRequest(request, signer)
return
}
//TODO 根据rpc和roa两种风格签名自行选择 //TODO 根据rpc和roa两种风格签名自行选择
switch request.GetStyle() { err = signRpcRequest(request, signer)
case requests.RPC:
err = signRpcRequest(request, signer)
case requests.ROA:
err = signRoaRequest(request, signer)
}
return return
} }

View File

@ -1,43 +0,0 @@
package signers
import (
"crypto/hmac"
"crypto/sha256"
"encoding/base64"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth/credentials"
)
type AliAppcodeSigner struct {
credential *credentials.AliAppcodeCredential
}
func (signer *AliAppcodeSigner) GetName() string {
return "HmacSHA256"
}
func (signer *AliAppcodeSigner) GetAccessKeyId() (string, error) {
return signer.credential.AccessKeyId, nil
}
func (signer *AliAppcodeSigner) GetAccessKeyFrom() (string, error) {
return "", nil
}
func (signer *AliAppcodeSigner) Sign(stringToSign, secretSuffix string) string {
secret := signer.credential.AccessKeySecret + secretSuffix
return ShaHmac256(stringToSign, secret)
}
func NewAliAppcodeSigner(credential *credentials.AliAppcodeCredential) *AliAppcodeSigner {
return &AliAppcodeSigner{
credential: credential,
}
}
func ShaHmac256(source, secret string) string {
key := []byte(secret)
hmac1 := hmac.New(sha256.New, key)
hmac1.Write([]byte(source))
signedString := base64.StdEncoding.EncodeToString(hmac1.Sum(nil))
return signedString
}

View File

@ -83,10 +83,6 @@ func (client *Client) InitClientConfig() (config *Config) {
} }
func (client *Client) Init() (err error) {
return client.InitWithAccessKey("", "", "")
}
func (client *Client) InitWithAccessKey(accessKeyId, accessKeySecret, accessKeyFrom string) (err error) { func (client *Client) InitWithAccessKey(accessKeyId, accessKeySecret, accessKeyFrom string) (err error) {
config := client.InitWithConfig() config := client.InitWithConfig()
credential := &credentials.BaseCredential{ credential := &credentials.BaseCredential{
@ -97,17 +93,6 @@ func (client *Client) InitWithAccessKey(accessKeyId, accessKeySecret, accessKeyF
return client.InitWithOptions(config, credential) return client.InitWithOptions(config, credential)
} }
func (client *Client) InitWithAliAppcode(accessKeyId, accessKeySecret string, env ...string) (err error) {
config := client.InitWithConfig()
credential := credentials.NewAliAppcodeCredential(accessKeyId, accessKeySecret)
if len(env) > 0 {
config.Env = env[0]
}
return client.InitWithOptions(config, credential)
}
func (client *Client) InitWithStsToken(accessKeyId, accessKeySecret, accessKeyFrom string) (err error) { func (client *Client) InitWithStsToken(accessKeyId, accessKeySecret, accessKeyFrom string) (err error) {
config := client.InitWithConfig() config := client.InitWithConfig()
credential := &credentials.StdTokenCredential{ credential := &credentials.StdTokenCredential{
@ -270,8 +255,8 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
func (client *Client) buildRequestWithSigner(request requests.AcsRequest, signer auth.Signer) (httpRequest *http.Request, err error) { func (client *Client) buildRequestWithSigner(request requests.AcsRequest, signer auth.Signer) (httpRequest *http.Request, err error) {
// init param // init param
domain := request.GetDomain() domain := request.GetDomain()
if strings.Index(domain.Default, ".") < 0 { if strings.Index(domain, ".") < 0 {
domain.Default += defaultDomain domain += defaultDomain
request.SetDomain(domain) request.SetDomain(domain)
} }
@ -279,10 +264,6 @@ func (client *Client) buildRequestWithSigner(request requests.AcsRequest, signer
request.SetScheme(client.config.Scheme) request.SetScheme(client.config.Scheme)
} }
if request.GetEnv() == "" && client.config.Env != "" {
request.SetEnv(client.config.Env)
}
err = requests.InitParam(request) err = requests.InitParam(request)
if err != nil { if err != nil {
return return
@ -315,7 +296,6 @@ func (client *Client) buildRequestWithSigner(request requests.AcsRequest, signer
if host, isContainsHost := request.GetHeaders()["host"]; isContainsHost { if host, isContainsHost := request.GetHeaders()["host"]; isContainsHost {
httpRequest.Host = host httpRequest.Host = host
} }
userAgent := DefaultUserAgent userAgent := DefaultUserAgent
httpRequest.Header.Set("User-Agent", userAgent) httpRequest.Header.Set("User-Agent", userAgent)

View File

@ -14,7 +14,6 @@ type Config struct {
UserAgent string `default:""` UserAgent string `default:""`
Scheme string `default:"HTTP"` Scheme string `default:"HTTP"`
Timeout time.Duration `default:"5"` Timeout time.Duration `default:"5"`
Env string `default:""`
} }
func NewConfig() *Config { func NewConfig() *Config {

View File

@ -26,11 +26,3 @@ func (request *CommonRequest) BuildQueries() string {
func (request *CommonRequest) GetBodyReader() io.Reader { func (request *CommonRequest) GetBodyReader() io.Reader {
return request.Ontology.GetBodyReader() return request.Ontology.GetBodyReader()
} }
func (request *CommonRequest) GetStyle() string {
return request.Ontology.GetStyle()
}
func (request *CommonRequest) InitWithApiInfo(domain Host, version, urlPath string) {
request.Ontology.InitWithApiInfo(domain, version, urlPath)
}

View File

@ -1,66 +0,0 @@
package requests
import (
"bytes"
"encoding/json"
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/utils"
"io"
"strings"
)
type JsonRequest struct {
*baseRequest
}
func (request *JsonRequest) init() {
request.baseRequest = defaultBaseRequest()
request.Method = POST
}
func (request *JsonRequest) BuildUrl() string {
var hostname string
if request.Domain.Func == nil {
hostname = request.Domain.Default
} else if hostname = request.Domain.Func(request.GetEnv()); hostname == "" {
hostname = request.Domain.Default
}
url := fmt.Sprintf("%s://%s", strings.ToLower(request.Scheme), hostname)
if len(request.Port) > 0 {
url = fmt.Sprintf("%s:%s", url, request.Port)
}
return url + request.BuildQueries()
}
func (request *JsonRequest) GetStyle() string {
return RPC
}
func (request *JsonRequest) BuildQueries() string {
path := strings.TrimLeft(strings.TrimSpace(request.GetActionName()), "/")
request.queries = "/" + path + "?" + utils.GetUrlFormedMap(request.QueryParams)
return request.queries
}
func (request *JsonRequest) GetActionName() string {
return request.actionName
}
func (request *JsonRequest) InitWithApiInfo(domain Host, version, urlPath string) {
request.init()
request.SetDomain(domain)
request.version = version
request.actionName = urlPath
}
func (request *JsonRequest) GetBodyReader() io.Reader {
if request.FormParams != nil && len(request.FormParams) > 0 {
body, err := json.Marshal(request.FormParams)
if err == nil {
return bytes.NewReader(body)
}
}
return strings.NewReader("")
}

View File

@ -12,9 +12,8 @@ import (
) )
const ( const (
RPC = "RPC" RPC = "RPC"
ROA = "ROA" ROA = "ROA"
STREAM = "STREAM"
HTTP = "HTTP" HTTP = "HTTP"
HTTPS = "HTTPS" HTTPS = "HTTPS"
@ -42,18 +41,9 @@ const (
Body = "Body" Body = "Body"
Path = "Path" Path = "Path"
TEST = "TEST"
PRE = "PRE"
RELEASE = "RELEASE"
HeaderSeparator = "\n" HeaderSeparator = "\n"
) )
type Host struct {
Default string
Func func(string) string
}
var debug utils.Debug var debug utils.Debug
func init() { func init() {
@ -71,28 +61,22 @@ type AcsRequest interface {
GetFormParams() map[string]string GetFormParams() map[string]string
GetMethod() string GetMethod() string
GetScheme() string GetScheme() string
GetDomain() Host GetDomain() string
SetDomain(host Host)
GetActionName() string GetActionName() string
GetAcceptFormat() string GetAcceptFormat() string
GetAccept() string
GetHeaders() map[string]string GetHeaders() map[string]string
GetStyle() string
InitWithApiInfo(domain Host, version, urlPath string)
GetEnv() string
SetEnv(string)
BuildUrl() string BuildUrl() string
BuildQueries() string BuildQueries() string
SetScheme(scheme string) SetScheme(scheme string)
SetContent(content []byte) SetContent(content []byte)
SetDomain(host string)
SetStringToSign(stringToSign string) SetStringToSign(stringToSign string)
GetStringToSign() string GetStringToSign() string
GetBodyReader() io.Reader GetBodyReader() io.Reader
AddHeaderParam(key, value string) addHeaderParam(key, value string)
addQueryParam(key, value string) addQueryParam(key, value string)
addFormParam(key, value string) addFormParam(key, value string)
} }
@ -101,12 +85,11 @@ type baseRequest struct {
Scheme string Scheme string
Method string Method string
Port string Port string
Domain Host Domain string
From string From string
ReadTimeout time.Duration ReadTimeout time.Duration
ConnectTimeout time.Duration ConnectTimeout time.Duration
isInsecure *bool isInsecure *bool
Env string
AcceptFormat string AcceptFormat string
actionName string actionName string
@ -124,14 +107,6 @@ type baseRequest struct {
stringToSign string stringToSign string
} }
func (request *baseRequest) GetEnv() string {
return request.Env
}
func (request *baseRequest) SetEnv(e string) {
request.Env = e
}
func (request *baseRequest) GetStringToSign() string { func (request *baseRequest) GetStringToSign() string {
return request.stringToSign return request.stringToSign
} }
@ -144,16 +119,6 @@ func (request *baseRequest) GetAcceptFormat() string {
return request.AcceptFormat return request.AcceptFormat
} }
func (request *baseRequest) GetAccept() string {
switch request.GetAcceptFormat() {
case JSON:
return Json
case XML:
return Xml
}
return ""
}
func (request *baseRequest) GetHeaders() map[string]string { func (request *baseRequest) GetHeaders() map[string]string {
return request.Headers return request.Headers
} }
@ -166,7 +131,7 @@ func (request *baseRequest) SetScheme(scheme string) {
request.Scheme = scheme request.Scheme = scheme
} }
func (request *baseRequest) SetDomain(host Host) { func (request *baseRequest) SetDomain(host string) {
request.Domain = host request.Domain = host
} }
@ -174,7 +139,7 @@ func (request *baseRequest) GetScheme() string {
return request.Scheme return request.Scheme
} }
func (request *baseRequest) GetDomain() Host { func (request *baseRequest) GetDomain() string {
return request.Domain return request.Domain
} }
@ -218,7 +183,7 @@ func (request *baseRequest) SetStringToSign(stringToSign string) {
request.stringToSign = stringToSign request.stringToSign = stringToSign
} }
func (request *baseRequest) AddHeaderParam(key, val string) { func (request *baseRequest) addHeaderParam(key, val string) {
request.Headers[key] = val request.Headers[key] = val
} }
@ -301,7 +266,7 @@ func addParam(request AcsRequest, position, key, value string) (err error) {
if len(value) > 0 { if len(value) > 0 {
switch position { switch position {
case Header: case Header:
request.AddHeaderParam(key, value) request.addHeaderParam(key, value)
case Query: case Query:
request.addQueryParam(key, value) request.addQueryParam(key, value)
case Body: case Body:

View File

@ -17,25 +17,13 @@ func (request *RpcRequest) init() {
} }
func (request *RpcRequest) BuildUrl() string { func (request *RpcRequest) BuildUrl() string {
url := fmt.Sprintf("%s://%s", strings.ToLower(request.Scheme), request.Domain)
var hostname string
if request.Domain.Func == nil {
hostname = request.Domain.Default
} else if hostname = request.Domain.Func(request.GetEnv()); hostname == "" {
hostname = request.Domain.Default
}
url := fmt.Sprintf("%s://%s", strings.ToLower(request.Scheme), hostname)
if len(request.Port) > 0 { if len(request.Port) > 0 {
url = fmt.Sprintf("%s:%s", url, request.Port) url = fmt.Sprintf("%s:%s", url, request.Port)
} }
return url + request.BuildQueries() return url + request.BuildQueries()
} }
func (request *RpcRequest) GetStyle() string {
return RPC
}
func (request *RpcRequest) BuildQueries() string { func (request *RpcRequest) BuildQueries() string {
path := strings.TrimLeft(strings.TrimSpace(request.GetActionName()), "/") path := strings.TrimLeft(strings.TrimSpace(request.GetActionName()), "/")
request.queries = "/" + path + "?" + utils.GetUrlFormedMap(request.QueryParams) request.queries = "/" + path + "?" + utils.GetUrlFormedMap(request.QueryParams)
@ -46,11 +34,12 @@ func (request *RpcRequest) GetActionName() string {
return request.actionName return request.actionName
} }
func (request *RpcRequest) InitWithApiInfo(domain Host, version, urlPath string) { func (request *RpcRequest) InitWithApiInfo(domain, version, urlPath string) *RpcRequest {
request.init() request.init()
request.SetDomain(domain) request.SetDomain(domain)
request.version = version request.version = version
request.actionName = urlPath request.actionName = urlPath
return request
} }
func (request *RpcRequest) GetBodyReader() io.Reader { func (request *RpcRequest) GetBodyReader() io.Reader {

View File

@ -1,55 +0,0 @@
package requests
import (
"bytes"
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/utils"
"io"
"strings"
)
type StreamRequest struct {
*baseRequest
}
func (s *StreamRequest) init() {
s.baseRequest = defaultBaseRequest()
s.baseRequest.AddHeaderParam("Content-Type", "application/form-data")
s.Method = POST
}
func (s *StreamRequest) GetStyle() string {
return STREAM
}
func (s *StreamRequest) InitWithApiInfo(domain Host, version, urlPath string) {
s.init()
s.SetDomain(domain)
s.version = version
s.actionName = urlPath
}
func (s *StreamRequest) BuildUrl() string {
var hostname string
if s.Domain.Func == nil {
hostname = s.Domain.Default
} else if hostname = s.Domain.Func(s.GetEnv()); hostname == "" {
hostname = s.Domain.Default
}
url := fmt.Sprintf("%s://%s", strings.ToLower(s.Scheme), hostname)
if len(s.Port) > 0 {
url = fmt.Sprintf("%s:%s", url, s.Port)
}
return url + s.BuildQueries()
}
func (s *StreamRequest) BuildQueries() string {
path := strings.TrimLeft(strings.TrimSpace(s.GetActionName()), "/")
s.queries = "/" + path + "?" + utils.GetUrlFormedMap(s.QueryParams)
return s.queries
}
func (s *StreamRequest) GetBodyReader() io.Reader {
return bytes.NewReader(s.Content)
}

View File

@ -1,63 +1,14 @@
package utils package utils
import ( import (
"crypto/md5"
"crypto/rand"
"encoding/hex"
"fmt" "fmt"
"hash"
rand2 "math/rand"
"net/url" "net/url"
"reflect" "reflect"
"sort"
"strconv" "strconv"
"strings" "strings"
"time" "time"
) )
type UUID [16]byte
const letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
func GetUUID() (uuidHex string) {
uuid := NewUUID()
uuidHex = hex.EncodeToString(uuid[:])
return
}
func NewUUID() UUID {
ns := UUID{}
safeRandom(ns[:])
u := newFromHash(md5.New(), ns, RandStringBytes(16))
u[6] = (u[6] & 0x0f) | (byte(2) << 4)
u[8] = (u[8]&(0xff>>2) | (0x02 << 6))
return u
}
func RandStringBytes(n int) string {
b := make([]byte, n)
for i := range b {
b[i] = letterBytes[rand2.Intn(len(letterBytes))]
}
return string(b)
}
func newFromHash(h hash.Hash, ns UUID, name string) UUID {
u := UUID{}
h.Write(ns[:])
h.Write([]byte(name))
copy(u[:], h.Sum(nil))
return u
}
func safeRandom(dest []byte) {
if _, err := rand.Read(dest); err != nil {
panic(err)
}
}
func GetUrlFormedMap(source map[string]string) (urlEncoded string) { func GetUrlFormedMap(source map[string]string) (urlEncoded string) {
urlEncoder := url.Values{} urlEncoder := url.Values{}
for key, value := range source { for key, value := range source {
@ -67,18 +18,6 @@ func GetUrlFormedMap(source map[string]string) (urlEncoded string) {
return return
} }
func GetUrlByKeySort(source map[string]string) (url string) {
keys := make([]string, 0, len(source))
for k := range source {
keys = append(keys, k)
}
sort.Strings(keys)
for _, key := range keys {
url += fmt.Sprintf("%s=%s&", key, source[key])
}
return strings.TrimRight(url, "&")
}
func InitStructWithDefaultTag(bean interface{}) { func InitStructWithDefaultTag(bean interface{}) {
beantype := reflect.TypeOf(bean) beantype := reflect.TypeOf(bean)
for i := 0; i < beantype.Elem().NumField(); i++ { for i := 0; i < beantype.Elem().NumField(); i++ {

View File

@ -1,37 +0,0 @@
package apk
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type AddApkRequest struct {
*requests.RpcRequest
List string `position:"Body" field:"list" default:"[]" `
}
type AddApkResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Status bool `json:"status"`
Msg string `json:"msg"`
Data struct {
Count int `json:"count"`
} `json:"data"`
}
func CreateAddApkRequest() (req *AddApkRequest) {
req = &AddApkRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/apk/add")
req.Method = requests.POST
return
}
func CreateAddApkResponse() (response *AddApkResponse) {
response = &AddApkResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1,36 +0,0 @@
package apk
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type AddTopRequest struct {
*requests.RpcRequest
Id int `position:"Body" field:"id" default:"0" `
Ids string `position:"Body" field:"ids" default:"" `
Top int `position:"Body" field:"top" default:"0"`
}
type AddTopResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Status bool `json:"status"`
Msg string `json:"msg"`
}
func CreateAddTopRequest() (req *AddTopRequest) {
req = &AddTopRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/apk/AddTop")
req.Method = requests.POST
return
}
func CreateAddTopResponse() (response *AddTopResponse) {
response = &AddTopResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1,66 +0,0 @@
package apk
import (
"encoding/json"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
)
const (
VERSION = "2021-07-30"
)
var HOST requests.Host = requests.Host{
Default: "c.api.gaore.com",
Func: func(s string) string {
var a = map[string]string{
requests.RELEASE: "c.api.gaore.com",
requests.PRE: "c.api.gaore.com",
requests.TEST: "c.api.gaore.com",
}
return a[s]
},
}
type Client struct {
sdk.Client
}
func NewClient() (client *Client) {
client = &Client{}
client.InitWithAccessKey("", "", "")
return
}
//打包任务添加优先级
func (c *Client) AddApkTop(req *AddTopRequest) (response *AddTopResponse, err error) {
response = CreateAddTopResponse()
err = c.DoAction(req, response)
return
}
//添加打包任务
func (c *Client) AddApk(req *AddApkRequest) (response *AddApkResponse, err error) {
response = CreateAddApkResponse()
err = c.DoAction(req, response)
return
}
//清除cdn
func (c *Client) RefreshApkR(req *RefreshApkRequest) (response *RefreshApkResponse, err error) {
response = CreateRefreshApkResponse()
if len(req.CdnUrlArray) > 0 {
cdnurls, _ := json.Marshal(req.CdnUrlArray)
req.cdnUrls = string(cdnurls)
}
err = c.DoAction(req, response)
return
}
//获取打包日志
func (c *Client) SearchApk(req *SearchApkRequest) (response *SearchApkResponse, err error) {
response = CreateSearchApkResponse()
err = c.DoAction(req, response)
return
}

View File

@ -1,21 +0,0 @@
package apk
import (
"fmt"
"testing"
"time"
)
func TestClient_GetUserInfo(t *testing.T) {
c := NewClient()
req := CreateSearchApkRequest()
req.GameIds = "3503"
req.Ver = "1.0.0"
req.SetReadTimeout(60 * time.Second)
resp, err := c.SearchApk(req)
fmt.Println(req)
fmt.Println(resp.GetHttpContentString())
fmt.Println(err)
}

View File

@ -1,36 +0,0 @@
package apk
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type RefreshApkRequest struct {
*requests.RpcRequest
cdnUrls string `position:"Body" field:"cdn_urls" default:"[]" `
CdnUrlArray []string
}
type RefreshApkResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Status bool `json:"status"`
Msg string `json:"msg"`
Data map[string]string `json:"data"`
}
func CreateRefreshApkRequest() (req *RefreshApkRequest) {
req = &RefreshApkRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/apk/refresh")
req.Method = requests.POST
return
}
func CreateRefreshApkResponse() (response *RefreshApkResponse) {
response = &RefreshApkResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1,74 +0,0 @@
package apk
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
"time"
)
type SearchApkRequest struct {
*requests.RpcRequest
StartTime string `position:"Body" field:"startTime" default:"" `
EndTime string `position:"Body" field:"endTime" default:"" `
State string `position:"Body" field:"state" default:"" `
SiteIds string `position:"Body" field:"siteIds" default:"" `
Ver string `position:"Body" field:"ver" default:"" `
SiteId int `position:"Body" field:"siteId" default:"" `
AgentId int `position:"Body" field:"agentId" default:"" `
Top int `position:"Body" field:"top" default:"" `
GameIds string `position:"Body" field:"gameIds" default:"" `
Autor string `position:"Body" field:"autor" default:"" `
Page int `position:"Body" field:"page" default:"1" `
Pagesize int `position:"Body" field:"pagesize" default:"20" `
Order string `position:"Body" field:"order" default:"" `
}
type ApkLog struct {
ID int `json:"Id"`
GameID int `json:"GameId"`
GameName string `json:"GameName"`
Ver string `json:"Ver"`
Top int `json:"Top"`
AgentID int `json:"AgentId"`
SiteID int `json:"SiteId"`
Addtime time.Time `json:"Addtime"`
Edittime time.Time `json:"Edittime"`
State int `json:"State"`
Times int `json:"Times"`
ReleaseTime int `json:"ReleaseTime"`
Env int `json:"Env"`
AliOss int `json:"AliOss"`
NeedCdn bool `json:"NeedCdn"`
Autor string `json:"Autor"`
Ext string `json:"Ext"`
IsAugment bool `json:"IsAugment"`
}
type SearchApkResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Status bool `json:"status"`
Msg string `json:"msg"`
Data struct {
Page int `json:"Page"`
PageSize int `json:"PageSize"`
Total int `json:"Total"`
List []ApkLog `json:"List"`
} `json:"data"`
}
func CreateSearchApkRequest() (req *SearchApkRequest) {
req = &SearchApkRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/apk/list")
req.Method = requests.POST
return
}
func CreateSearchApkResponse() (response *SearchApkResponse) {
response = &SearchApkResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1,48 +0,0 @@
package callback
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
)
const (
VERSION = "2021-11-30"
)
var HOST requests.Host = requests.Host{
Default: "callback.api.gaore.com",
Func: func(s string) string {
var a = map[string]string{
requests.RELEASE: "callback.api.gaore.com",
requests.PRE: "callback.api.gaore.com",
requests.TEST: "callback.api.gaore.com",
}
return a[s]
},
}
type Client struct {
sdk.Client
}
func NewClient() (client *Client) {
client = &Client{}
client.InitWithAccessKey("", "", "")
return
}
//上报关键行为
func (c *Client) SendAction(req *SendActionRequest) (response *SendActionResponse, err error) {
response = CreateSendActionResponse()
err = c.DoAction(req, response)
return
}
// 上报激活
func (c *Client) SendActive() {
}
// 上报付费
// 上报注册

View File

@ -1,49 +0,0 @@
package callback
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
const OS_ANDROID = 2
const OS_IOS = 1
type SendActionRequest struct {
*requests.RpcRequest
GameId int64 `position:"Query" field:"game_id" default:"" `
AgentId int64 `position:"Query" field:"agent_id" default:"" `
SiteId int64 `position:"Query" field:"site_id" default:"" `
Imei string `position:"Query" field:"imei" default:"" `
Oaid string `position:"Query" field:"oaid" default:"" `
Ip string `position:"Query" field:"ip" default:"" `
Ua string `position:"Query" field:"ua" default:"" `
Os int `position:"Query" field:"os" default:"" `
ParamsArray []string
}
type SendActionResponseData struct {
Account string `json:"account"`
Total int `json:"total"`
}
type SendActionResponse struct {
*responses.BaseResponse
Data SendActionResponseData `json:"data"`
}
func CreateSendActionRequest() (req *SendActionRequest) {
req = &SendActionRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/callback/ads_callback/sendAction")
req.Method = requests.GET
return
}
func CreateSendActionResponse() (response *SendActionResponse) {
response = &SendActionResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1,31 +0,0 @@
package game
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
)
const (
VERSION = "2020-11-16"
)
var HOST = requests.Host{
Default: "game",
}
type Client struct {
sdk.Client
}
func NewClient() (client *Client, err error) {
client = new(Client)
err = client.Init()
return
}
// GetGameOsInfo 获取游戏系统信息
func (c *Client) GetGameOsInfo(req *GetGameOsInfoReq) (resp *GetGameOsInfoResp, err error) {
resp = CreateGetGameOsInfoResp()
err = c.DoAction(req, resp)
return
}

View File

@ -1,22 +0,0 @@
package game
import (
"fmt"
"testing"
)
func TestGetGameOsInfo(t *testing.T) {
client, err := NewClient()
if err != nil {
panic(err)
}
req := CreateGetGameOsInfoReq()
resp, err := client.GetGameOsInfo(req)
if err != nil {
panic(err)
}
fmt.Println(resp.Code, resp.Msg, resp.Data.OsList, resp.Data.OsRelList2)
}

View File

@ -1,49 +0,0 @@
package game
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type GetGameOsInfoReq struct {
*requests.RpcRequest
}
type GetGameOsInfoResp struct {
*responses.BaseResponse
Code int `json:"code"`
Msg string `json:"msg"`
Data Data `json:"data"`
}
type Data struct {
OsRelList2 []OsRelList2 `json:"os_rel_list2"`
OsList map[string]OsList `json:"os_list"`
}
type OsRelList2 struct {
TwPlatID int `json:"tw_plat_id"`
TwOs int `json:"tw_os"`
Os int `json:"os"`
OsTwo int `json:"os_two"`
}
type OsList struct {
Name string `json:"name"`
OsTwo map[string]interface{}
}
func CreateGetGameOsInfoReq() *GetGameOsInfoReq {
req := &GetGameOsInfoReq{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/game/getGameOsInfo")
req.Method = requests.POST
return req
}
func CreateGetGameOsInfoResp() *GetGameOsInfoResp {
return &GetGameOsInfoResp{
BaseResponse: &responses.BaseResponse{},
}
}

View File

@ -2,26 +2,14 @@ package jedi
import ( import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk" "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"strings" "strings"
) )
const ( const (
VERSION = "2020-09-24" HOST = "jedi"
VERSION = "2020-08-04"
) )
var HOST requests.Host = requests.Host{
Default: "jedi.api.gaore.com",
Func: func(s string) string {
var a = map[string]string{
requests.RELEASE: "jedi.api.gaore.com",
requests.PRE: "jedi.api.gaore.com",
requests.TEST: "jedi.oapi.gaore.com",
}
return a[s]
},
}
type Client struct { type Client struct {
sdk.Client sdk.Client
} }
@ -35,14 +23,14 @@ func (c *Client) SendSms(req *SendSmsRequest) (response *SendSmsResponse, err er
return return
} }
func (c *Client) Test(req *DemoTestRequest) (response *DemoTestResponse, err error) {
response = CreateDemoTestResponse()
err = c.DoAction(req, response)
return
}
func NewClientWithAccessKey(accesskey, secrect, source string) (client *Client, err error) { func NewClientWithAccessKey(accesskey, secrect, source string) (client *Client, err error) {
client = &Client{} client = &Client{}
err = client.InitWithAccessKey(accesskey, secrect, source) err = client.InitWithAccessKey(accesskey, secrect, source)
return return
} }
func NewClientWithAliAppcode(accesskey, secrect string, env ...string) (client *Client, err error) {
client = &Client{}
err = client.InitWithAliAppcode(accesskey, secrect, env...)
return
}

View File

@ -7,9 +7,9 @@ import (
type SendSmsRequest struct { type SendSmsRequest struct {
*requests.RpcRequest *requests.RpcRequest
User string `position:"Body" field:"user" default:"" ` User string `position:"Query" field:"user" default:"" `
Code string `position:"Body" field:"code" default:"" ` Code string `position:"Query" field:"code" default:"" `
Params string `position:"Body" field:"params" default:"" ` Params string `position:"Query" field:"params" default:"" `
ParamsArray []string ParamsArray []string
} }
@ -28,7 +28,7 @@ func CreateSendSmsRequest() (req *SendSmsRequest) {
RpcRequest: &requests.RpcRequest{}, RpcRequest: &requests.RpcRequest{},
} }
req.InitWithApiInfo(HOST, VERSION, "/api/sms/send") req.InitWithApiInfo(HOST, VERSION, "/api/sms/send")
req.Method = requests.POST req.Method = requests.GET
return return
} }

View File

@ -0,0 +1,37 @@
package jedi
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type DemoTestRequest struct {
*requests.RpcRequest
Param1 string `position:"Query" field:"param_1" default:"" `
Param2 int `position:"Query" field:"param_2" default:"10086" `
Param3 bool `position:"Query" field:"param_3" default:"false" `
ParamBody string `position:"Body" field:"param_body" default:"foobar" `
}
func CreateDemoTestRequest() (req *DemoTestRequest) {
req = &DemoTestRequest{RpcRequest: &requests.RpcRequest{}}
req.InitWithApiInfo(HOST, VERSION, "/api/sms/Index")
req.Method = requests.POST
return
}
type DemoTestResponse struct {
*responses.BaseResponse
Data DemoTestResponseData `json:"data"`
}
type DemoTestResponseData struct {
Account string `json:"account"`
Total int `json:"total"`
}
func CreateDemoTestResponse() *DemoTestResponse {
return &DemoTestResponse{
BaseResponse: &responses.BaseResponse{},
}
}

View File

@ -1,50 +0,0 @@
package mail
import (
"crypto/md5"
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"time"
)
const (
VERSION = "2021-09-27"
)
var HOST requests.Host = requests.Host{
Default: "mail.gaore.com",
Func: func(s string) string {
var a = map[string]string{
requests.RELEASE: "mail.gaore.com",
requests.PRE: "mail.gaore.com",
requests.TEST: "mail.gaore.com",
}
return a[s]
},
}
type Client struct {
sdk.Client
}
func NewClient() (client *Client) {
client = &Client{}
client.InitWithAccessKey("", "", "")
return
}
func (c *Client) SendEmail(req *PostEmailRequest) (response *PostEmailResponse, err error) {
now := time.Now().Second()
key := "04573fc4c8e01999a0909ab9c00bca5a"
signstr := fmt.Sprintf("%d%s", now, key)
data := []byte(signstr)
has := md5.Sum(data)
sign := fmt.Sprintf("%x", has)
req.Time = now
req.Sign = sign
response = CreatePostEmailResponse()
err = c.DoAction(req, response)
return
}

View File

@ -1,22 +0,0 @@
package mail
import (
"fmt"
"testing"
"time"
)
func TestClient_GetUserInfo(t *testing.T) {
c := NewClient()
req := CreatePostEmailRequest()
req.Addresses = "3002467428@qq.com"
req.Body = "1111"
req.FromName = "213123121"
req.SetReadTimeout(60 * time.Second)
resp, err := c.SendEmail(req)
fmt.Println(req)
fmt.Println(resp.GetHttpContentString())
fmt.Println(err)
}

View File

@ -1,36 +0,0 @@
package mail
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type PostEmailRequest struct {
*requests.RpcRequest
Addresses string `position:"Body" field:"addresses" default:"" `
Subject string `position:"Body" field:"subject" default:"" `
Body string `position:"Body" field:"body" default:""`
FromName string `position:"Body" field:"fromName" default:""`
Time int `position:"Body" field:"time" default:""`
Sign string `position:"Body" field:"sign" default:""`
}
type PostEmailResponse struct {
*responses.BaseResponse
}
func CreatePostEmailRequest() (req *PostEmailRequest) {
req = &PostEmailRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/email/post_email.php")
req.Method = requests.POST
return
}
func CreatePostEmailResponse() (response *PostEmailResponse) {
response = &PostEmailResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1,43 +0,0 @@
package mkt
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
)
const (
VERSION = "2020-11-16"
)
var HOST = requests.Host{
Default: "mkt",
}
type Client struct {
sdk.Client
}
// PkgNotice 打包通知
func (c *Client) PkgNotice(req *PkgNoticeRequest) (response *PkgNoticeResponse, err error) {
response = CreatePkgNoticeResponse()
err = c.DoAction(req, response)
return
}
func NewClientWithAccessKey(accesskey, secrect, source string) (client *Client, err error) {
client = &Client{}
err = client.InitWithAccessKey(accesskey, secrect, source)
return
}
func NewClient() (client *Client, err error) {
client = new(Client)
err = client.Init()
return
}
func (c *Client) SubjectList(req *SubjectListRequest) (response *SubjectListResponse, err error) {
response = CreateSubjectListResponse()
err = c.DoAction(req, response)
return
}

View File

@ -1,22 +0,0 @@
package mkt
import (
"fmt"
"testing"
)
func TestSubjectList(t *testing.T) {
client, err := NewClient()
if err != nil {
panic(err)
}
req := CreateSubjectListRequest(0)
req.Port = "9090"
list, err := client.SubjectList(req)
if err != nil {
panic(err)
}
fmt.Println(list.Status, list.Code, list.Msg, list.Data)
}

View File

@ -1,36 +0,0 @@
package mkt
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
//PkgNoticeRequest 打包通知请求信息
type PkgNoticeRequest struct {
*requests.RpcRequest
SiteID int64 `position:"Body" field:"site_id"` // 广告位ID
Status int `position:"Body" field:"status"` // 打包状态(0失败 1成功)
}
//PkgNoticeResponse 打包通知响应信息
type PkgNoticeResponse struct {
*responses.BaseResponse
}
//CreatePkgNoticeRequest 创建通知接口
func CreatePkgNoticeRequest() (req *PkgNoticeRequest) {
req = &PkgNoticeRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/game/pkgnotice")
req.Method = requests.POST
return
}
//CreatePkgNoticeResponse 创建通知响应
func CreatePkgNoticeResponse() (response *PkgNoticeResponse) {
response = &PkgNoticeResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1,68 +0,0 @@
package mkt
import (
"crypto/md5"
"encoding/hex"
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
"time"
)
const appKey = "fc1f841#@de!!08"
type SubjectListRequest struct {
*requests.RpcRequest
}
type SubjectListResponse struct {
*responses.BaseResponse
Status bool `json:"status"`
Code int `json:"code"`
Msg string `json:"msg"`
Data struct {
List map[int]Data `json:"list"`
} `json:"data"`
}
type Data struct {
Abbr string `json:"abbr"`
AbbrSign string `json:"abbr_sign"`
Id int `json:"id"`
Name string `json:"name"`
State int `json:"state"`
System string `json:"system"`
Type int `json:"type"`
}
// CreateSubjectListRequest 公司列表请求
func CreateSubjectListRequest(state int) (req *SubjectListRequest) {
ts := time.Now().Unix()
hash := md5.New()
hash.Write([]byte(fmt.Sprintf("%v%v", ts, appKey)))
hashBytes := hash.Sum(nil)
token := hex.EncodeToString(hashBytes)
req = &SubjectListRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, fmt.Sprintf("/api/subject/list"))
req.FormParams = map[string]string{
"token": token,
"ts": fmt.Sprintf("%v", ts),
"state": fmt.Sprintf("%v", state),
}
req.Method = requests.POST
return
}
// CreateSubjectListResponse 公司列表请求响应
func CreateSubjectListResponse() (response *SubjectListResponse) {
response = &SubjectListResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1,36 +0,0 @@
package oss
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type GetApkVersionRequest struct {
*requests.JsonRequest
Filepath string `position:"Body" field:"filepath"`
}
type GetApkVersionResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Msg string `json:"msg"`
Data struct {
VersionCode string `json:"versionCode"`
VersionName string `json:"versionName"`
} `json:"data"`
}
func CreateGetApkVersionRequest() (req *GetApkVersionRequest) {
req = &GetApkVersionRequest{
JsonRequest: &requests.JsonRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/apk/version")
req.Method = requests.POST
return
}
func CreateGetApkVersionResponse() *GetApkVersionResponse {
return &GetApkVersionResponse{
BaseResponse: &responses.BaseResponse{},
}
}

View File

@ -1,65 +0,0 @@
package oss
import (
"errors"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth/credentials"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
)
const (
VERSION = "2024-05-30"
)
var HOST = requests.Host{
Default: "oss.gaore.com",
}
type Client struct {
sdk.Client
}
func NewClient() (client *Client, err error) {
client = new(Client)
err = client.Init()
return
}
func NewClientWithSts() {
}
func (c *Client) PutOss(req *PutOssRequest) (resp *PutOssResponse, err error) {
if req.BucketName == "" {
err = errors.New("bucket name is empty")
return
}
if req.FileStream == nil {
err = errors.New("stream is empty")
return
}
req.SetContent(req.FileStream)
resp = CreatePutOssResponse()
err = c.DoAction(req, resp)
return
}
func (c *Client) DelOss(req *DelOssRequest) (resp *DelOssResponse, err error) {
resp = CreateDelOssResponse()
err = c.DoAction(req, resp)
return
}
func (c *Client) InitMultipartUpload(req *InitMultipartUploadRequest) (resp *InitMultipartUploadResponse, err error) {
resp = CreateInitMultipartUploadResponse()
err = c.DoAction(req, resp)
return
}
func (c *Client) GetApkVersion(req *GetApkVersionRequest) (resp *GetApkVersionResponse, err error) {
resp = CreateGetApkVersionResponse()
sign, err := auth.NewSignerWithCredential(credentials.NewStsTokenCredential("", "ccc", ""), nil)
err = c.DoActionWithSigner(req, resp, sign)
return
}

View File

@ -1,81 +0,0 @@
package oss
import (
"encoding/json"
"os"
"testing"
)
func TestUpload_Put(t *testing.T) {
req := CreatePutOssRequest()
req.BucketName = "image"
file, err := os.ReadFile("test.jpg")
if err != nil {
t.Error(err)
return
}
req.FileStream = file
client, err := NewClient()
resp, err := client.PutOss(req)
if err != nil {
t.Error(err)
return
}
t.Log(resp.Data.Url)
}
func TestUpload_Del(t *testing.T) {
req := CreateDelOssRequest()
req.BucketName = "image"
req.MediaUrl = "https://image.89yoo.com/uploads/549/549e887460a72333c361661683023018.jpeg"
client, err := NewClient()
if err != nil {
t.Error(err)
return
}
resp, err := client.DelOss(req)
if err != nil {
t.Error(err)
return
}
t.Log(resp.Code)
}
func TestCreateInitMultipartUpload(t *testing.T) {
req := CreateInitMultipartUploadRequest()
req.Filepath = "test.jpg"
req.TargetType = "oss"
req.TargetName = "image"
req.FileHash = "51c68615b8d21f9b72b02f48c400cb87"
client, err := NewClient()
if err != nil {
t.Error(err)
return
}
resp, err := client.InitMultipartUpload(req)
if err != nil {
t.Error(err)
return
}
r, err := json.Marshal(resp)
if err != nil {
return
}
t.Log(string(r))
}
func TestClient_GetApkVersion(t *testing.T) {
req := CreateGetApkVersionRequest()
req.Filepath = "36c55c4c3a2f4c79e3917b989d580496.zip"
client, err := NewClient()
if err != nil {
t.Error(err)
return
}
resp, err := client.GetApkVersion(req)
if err != nil {
t.Error(err)
return
}
t.Log(resp.Data.VersionCode, resp.Data.VersionName)
}

View File

@ -1,62 +0,0 @@
package oss
import (
"crypto/md5"
"encoding/hex"
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
"time"
)
const (
multipartUploadKeys = "b4471b940d98"
)
type InitMultipartUploadRequest struct {
*requests.JsonRequest
Filepath string `position:"Body" field:"filepath"`
TargetType string `position:"Body" field:"target_type"`
TargetName string `position:"Body" field:"target_name"`
FileHash string `position:"Body" field:"file_hash"`
}
type InitMultipartUploadResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Msg string `json:"msg"`
Data struct {
FileUploaded bool `json:"file_uploaded"`
UploadId string `json:"upload_id,omitempty"`
Links []Link `json:"links,omitempty"`
Hash string `json:"hash,omitempty"`
Url string `json:"url,omitempty"`
Filepath string `json:"filepath,omitempty"`
FileName string `json:"filename,omitempty"`
} `json:"data"`
}
type Link struct {
Href string `json:"href"`
Rel string `json:"rel"`
Method string `json:"method"`
}
func CreateInitMultipartUploadRequest() (req *InitMultipartUploadRequest) {
ts := fmt.Sprintf("%d", time.Now().Unix())
m := md5.Sum([]byte(ts + multipartUploadKeys))
sign := hex.EncodeToString(m[:])
req = &InitMultipartUploadRequest{
JsonRequest: &requests.JsonRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/upload/multipart/init?ts="+ts+"&sign="+sign)
return
}
func CreateInitMultipartUploadResponse() (resp *InitMultipartUploadResponse) {
resp = &InitMultipartUploadResponse{
BaseResponse: &responses.BaseResponse{},
}
return resp
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 630 KiB

View File

@ -1,31 +0,0 @@
package oss
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type DelOssRequest struct {
*requests.JsonRequest
BucketName string `position:"Body" field:"bucket_name" default:"image"`
MediaUrl string `position:"Body" field:"url" default:"-"`
}
type DelOssResponse struct {
*responses.BaseResponse
}
func CreateDelOssRequest() (req *DelOssRequest) {
req = &DelOssRequest{
JsonRequest: &requests.JsonRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/upload/del")
req.Method = requests.POST
return
}
func CreateDelOssResponse() (resp *DelOssResponse) {
return &DelOssResponse{
BaseResponse: &responses.BaseResponse{},
}
}

View File

@ -1,37 +0,0 @@
package oss
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type PutOssRequest struct {
*requests.StreamRequest
BucketName string `position:"Query" field:"bucket_name" default:"image"`
FileStream []byte
}
type PutOssResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Msg string `json:"msg"`
Data struct {
Url string `json:"url"`
}
}
func CreatePutOssRequest() (req *PutOssRequest) {
req = &PutOssRequest{
StreamRequest: &requests.StreamRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "api/upload/put")
req.Method = requests.POST
return
}
func CreatePutOssResponse() (resp *PutOssResponse) {
return &PutOssResponse{
BaseResponse: &responses.BaseResponse{},
}
}

View File

@ -1,56 +0,0 @@
package pay
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
)
const (
VERSION = "2024-06-03"
)
var HOST requests.Host = requests.Host{
Default: "pay.gaore.com",
Func: func(s string) string {
var a = map[string]string{
requests.RELEASE: "pay.gaore.com",
requests.PRE: "pay.gaore.com",
requests.TEST: "pay.gaore.com",
}
return a[s]
},
}
type Client struct {
sdk.Client
}
func NewClient() (client *Client, err error) {
client = new(Client)
err = client.Init()
return
}
func (c *Client) ComplaintReply(req *ComplaintReplyRequest) (response *ComplaintReplyResponse, err error) {
response = CreateComplaintReplyResponse()
err = c.DoAction(req, response)
return
}
func (c *Client) ComplaintComplete(req *ComplaintCompleteRequest) (response *ComplaintCompleteResponse, err error) {
response = CreateComplaintCompleteResponse()
err = c.DoAction(req, response)
return
}
func (c *Client) ComplaintUpload(req *ComplaintUploadRequest) (response *ComplaintUploadResponse, err error) {
response = CreateComplaintUploadResponse()
err = c.DoAction(req, response)
return
}
func (c *Client) ComplaintNotifyUrl(req *ComplaintNotifyUrlRequest) (response *ComplaintNotifyUrlResponse, err error) {
response = CreateComplaintNotifyUrlResponse()
err = c.DoAction(req, response)
return
}

View File

@ -1,28 +0,0 @@
package pay
import (
"fmt"
"log"
"testing"
)
func TestClient_GetUserInfo(t *testing.T) {
c, err := NewClient()
if err != nil {
t.Error(err)
}
req := CreateComplaintNotifyUrlRequest()
req.MchId = "3503"
req.NotifyUrl = "https://pay.uu89.com/api/complaint/wxNotify/3503"
req.Type = 1
resp, err := c.ComplaintNotifyUrl(req)
if err != nil {
log.Fatalln(err)
}
fmt.Println(resp.GetHttpContentString())
fmt.Println(resp.GetHttpHeaders())
}

View File

@ -1,34 +0,0 @@
package pay
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type ComplaintCompleteRequest struct {
*requests.RpcRequest
MchId string `position:"Body" field:"mch_id" default:"" `
ComplaintId string `position:"Body" field:"complaint_id" default:"" `
}
type ComplaintCompleteResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Msg string `json:"msg"`
}
func CreateComplaintCompleteRequest() (req *ComplaintCompleteRequest) {
req = &ComplaintCompleteRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/complaint/complete")
req.Method = requests.POST
return
}
func CreateComplaintCompleteResponse() (response *ComplaintCompleteResponse) {
response = &ComplaintCompleteResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1,35 +0,0 @@
package pay
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type ComplaintNotifyUrlRequest struct {
*requests.RpcRequest
MchId string `position:"Body" field:"mch_id" default:"" `
NotifyUrl string `position:"Body" field:"notify_url" default:"" `
Type int `position:"Body" field:"type" default:""`
}
type ComplaintNotifyUrlResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Msg string `json:"msg"`
}
func CreateComplaintNotifyUrlRequest() (req *ComplaintNotifyUrlRequest) {
req = &ComplaintNotifyUrlRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/complaint/createWxNotifyUrl")
req.Method = requests.POST
return
}
func CreateComplaintNotifyUrlResponse() (response *ComplaintNotifyUrlResponse) {
response = &ComplaintNotifyUrlResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1,36 +0,0 @@
package pay
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type ComplaintReplyRequest struct {
*requests.RpcRequest
MchId string `position:"Body" field:"mch_id" default:"" `
ComplaintId string `position:"Body" field:"complaint_id" default:"" `
Content string `position:"Body" field:"content" default:"" `
Images string `position:"Body" field:"images" default:"" `
}
type ComplaintReplyResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Msg string `json:"msg"`
}
func CreateComplaintReplyRequest() (req *ComplaintReplyRequest) {
req = &ComplaintReplyRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/complaint/reply")
req.Method = requests.POST
return
}
func CreateComplaintReplyResponse() (response *ComplaintReplyResponse) {
response = &ComplaintReplyResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1,36 +0,0 @@
package pay
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type ComplaintUploadRequest struct {
*requests.RpcRequest
MchId string `position:"Body" field:"mch_id" default:"" `
ImageUrl string `position:"Body" field:"image_url" default:"" `
ComplaintId string `position:"Body" field:"complaint_id" default:" " `
}
type ComplaintUploadResponse struct {
*responses.BaseResponse
Code int `json:"code"`
Msg string `json:"msg"`
Data map[string]string `json:"data"`
}
func CreateComplaintUploadRequest() (req *ComplaintUploadRequest) {
req = &ComplaintUploadRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/complaint/imageUpload")
req.Method = requests.POST
return
}
func CreateComplaintUploadResponse() (response *ComplaintUploadResponse) {
response = &ComplaintUploadResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1,35 +0,0 @@
package script
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
)
const (
VERSION = "2020-11-16"
)
var HOST = requests.Host{
Default: "script",
}
type Client struct {
sdk.Client
}
func NewClient() (client *Client, err error) {
client = new(Client)
err = client.Init()
return
}
// OpenGame 同步到游戏中心
func (c *Client) OpenGame(req *OpenGameReq) (resp *OpenGameResp, err error) {
resp = CreateOpenGameResp()
err = c.DoAction(req, resp)
if err != nil {
return
}
return
}

View File

@ -1,21 +0,0 @@
package script
import (
"fmt"
"testing"
)
func TestOpenGame(t *testing.T) {
client, err := NewClient()
if err != nil {
panic(err)
}
req := CreateOpenGameReq(7275)
resp, err := client.OpenGame(req)
if err != nil {
panic(err)
}
fmt.Println(resp.Code, resp.Msg)
}

View File

@ -1,41 +0,0 @@
package script
import (
"encoding/json"
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type OpenGameReq struct {
*requests.RpcRequest
}
type OpenGameResp struct {
*responses.BaseResponse
}
// GetHttpContentBytes 因为http://script.gaore.com/open_game.php?game_id=这个接口返回的不是json反序列化会报错所以返回一个固定的json
func (baseResponse *OpenGameResp) GetHttpContentBytes() []byte {
b, _ := json.Marshal(map[string]interface{}{"code": 200, "msg": "success"})
return b
}
// CreateOpenGameReq 创建同步到游戏中心请求
func CreateOpenGameReq(gameId int) *OpenGameReq {
req := &OpenGameReq{
&requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "open_game.php?game_id="+fmt.Sprintf("%v", gameId))
req.Method = requests.POST
return req
}
// CreateOpenGameResp 创建同步到游戏中心响应
func CreateOpenGameResp() *OpenGameResp {
return &OpenGameResp{
BaseResponse: &responses.BaseResponse{},
}
}

View File

@ -1,18 +1,12 @@
package sso package sso
import ( import "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
)
const ( const (
HOST = "sso"
VERSION = "2020-08-07" VERSION = "2020-08-07"
) )
var HOST = requests.Host{
Default: "sso",
}
type Client struct { type Client struct {
sdk.Client sdk.Client
} }

View File

@ -1,41 +0,0 @@
package stat
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
)
const (
VERSION = "2020-11-16"
)
var HOST = requests.Host{
Default: "stat",
}
type Client struct {
sdk.Client
}
func NewClient() (client *Client, err error) {
client = new(Client)
err = client.Init()
return
}
// SyncGameServerList 同步开服数据
func (c *Client) SyncGameServerList(req *SyncGameServerListReq) (resp *SyncGameServerListResp, err error) {
resp = CreateSyncGameServerListResp()
err = c.DoAction(req, resp)
if err != nil {
return
}
return
}
func (c *Client) SetUserNewGameAuth(req *SetUserNewGameAuthReq) (resp *SetUserNewGameAuthResp, err error) {
resp = CreateSetUserNewGameAuthResp()
err = c.DoAction(req, resp)
return
}

View File

@ -1,54 +0,0 @@
package stat
import (
"fmt"
"testing"
)
func TestSyncGameServerList(t *testing.T) {
client, err := NewClient()
if err != nil {
panic(err)
}
req := CreateSyncGameServerListReq("insertOrUpdate", []map[string]interface{}{
{
"id": 123564,
"channel_id": 12456,
"version_id": 1,
"game_id": 1,
"server_id": 1,
"game_sign": "test",
"name": "test",
"open_date": "2099-03-01",
"open_time": "12:00:00",
"remark": "",
"status": 1,
"if_tj": 1,
},
})
resp, err := client.SyncGameServerList(req)
if err != nil {
panic(err)
}
fmt.Println(resp.Code, resp.Msg, resp.Count)
}
func TestClient_SetUserNewGameAuth(t *testing.T) {
client, err := NewClient()
if err != nil {
panic(err)
}
req := CreateSetUserNewGameAuthReq(map[string]string{
"game_sign": "qwldy",
"game_id": "7275",
})
resp, err := client.SetUserNewGameAuth(req)
if err != nil {
panic(err)
}
fmt.Println(resp.Code, resp.Msg, resp.Data.Result)
}

View File

@ -1,62 +0,0 @@
package stat
import (
"encoding/json"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type SyncGameServerListReq struct {
*requests.RpcRequest
}
type SyncGameServerListResp struct {
*responses.BaseResponse
Code int `json:"code"`
Msg string `json:"msg"`
Count int `json:"count"`
}
// CreateSyncGameServerListReq 创建同步开服数据请求
// opt: 更新 insertOrUpdate, 删除 del
//
// data: []map[string]interface{}{
// {
// "id": data.ID,
// "channel_id": data.ChannelID,
// "version_id": data.VersionID,
// "game_id": data.GameID,
// "server_id": data.ServerID,
// "game_sign": data.GameSign,
// "name": data.Name,
// "open_date": data.OpenDate.Format(constants.DateFormat),
// "open_time": data.OpenTime,
// "remark": data.Remark,
// "status": data.Status,
// "if_tj": data.IfTj,
// },
// }
func CreateSyncGameServerListReq(opt string, data []map[string]interface{}) *SyncGameServerListReq {
req := &SyncGameServerListReq{
&requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/game/syncGameServerList")
req.Method = requests.POST
marshal, _ := json.Marshal(data)
req.FormParams = map[string]string{
"opt": opt,
"data": string(marshal),
}
return req
}
// CreateSyncGameServerListResp 创建同步开服数据响应
func CreateSyncGameServerListResp() *SyncGameServerListResp {
return &SyncGameServerListResp{
BaseResponse: &responses.BaseResponse{},
}
}

View File

@ -1,59 +0,0 @@
package stat
import (
"crypto/md5"
"encoding/hex"
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
"time"
)
type SetUserNewGameAuthReq struct {
*requests.RpcRequest
}
type SetUserNewGameAuthResp struct {
*responses.BaseResponse
Code int `json:"code"`
Msg string `json:"msg"`
Data Data `json:"data"`
}
type Data struct {
Result string `json:"result"`
}
const key = "gr_new_game"
// CreateSetUserNewGameAuthReq 设置用户新游戏授权
func CreateSetUserNewGameAuthReq(data map[string]string) *SetUserNewGameAuthReq {
req := &SetUserNewGameAuthReq{
&requests.RpcRequest{},
}
ts := time.Now().Unix()
hash := md5.New()
hash.Write([]byte(fmt.Sprintf("%v%v", ts, key)))
hashBytes := hash.Sum(nil)
token := hex.EncodeToString(hashBytes)
req.InitWithApiInfo(HOST, VERSION, "/user/setUserNewGameAuth")
req.Method = requests.POST
req.FormParams = data
if req.FormParams == nil {
req.FormParams = make(map[string]string)
}
req.FormParams["sign"] = token
req.FormParams["time"] = fmt.Sprintf("%v", ts)
return req
}
// CreateSetUserNewGameAuthResp 创建设置用户新游戏授权响应
func CreateSetUserNewGameAuthResp() *SetUserNewGameAuthResp {
return &SetUserNewGameAuthResp{
BaseResponse: &responses.BaseResponse{},
}
}

View File

@ -1,44 +0,0 @@
package www
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
)
const (
VERSION = "2020-09-24"
)
var HOST requests.Host = requests.Host{
Default: "apisdk.9ooo.cn",
Func: func(s string) string {
var a = map[string]string{
requests.RELEASE: "apisdk.9ooo.cn",
requests.PRE: "apisdk.9ooo.cn",
requests.TEST: "apisdk.9ooo.cn",
}
return a[s]
},
}
type Client struct {
sdk.Client
}
func NewClientWithAccessKey(accesskey, secrect, source string) (client *Client, err error) {
client = &Client{}
err = client.InitWithAccessKey(accesskey, secrect, source)
return
}
func NewClientWithAliAppcode(accesskey, secrect string, env ...string) (client *Client, err error) {
client = &Client{}
err = client.InitWithAliAppcode(accesskey, secrect, env...)
return
}
func (c *Client) GetUserInfo(req *GetPwdRequest) (response *GetPwdResponse, err error) {
response = CreateGetPwdResponse()
err = c.DoAction(req, response)
return
}

View File

@ -1,25 +0,0 @@
package www
import (
"fmt"
"log"
"testing"
)
func TestClient_GetUserInfo(t *testing.T) {
c, err := NewClientWithAliAppcode("203874304", "9e5489a82dd641729186cdad166d81a3")
if err != nil {
t.Error(err)
}
req := CreateGetPwdRequest()
req.UserName = "ttom666"
resp, err := c.GetUserInfo(req)
if err != nil {
log.Fatalln(err)
}
fmt.Println(resp.GetHttpContentString())
fmt.Println(resp.GetHttpHeaders())
}

View File

@ -1,38 +0,0 @@
package www
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type GetPwdRequest struct {
*requests.RpcRequest
UserName string `position:"Query" field:"user_name" default:"-" `
Uid int64 `position:"Query" field:"uid" default:"0"`
}
type GetPwdResponse struct {
*responses.BaseResponse
Ret int `json:"ret"`
Msg string `json:"msg"`
Data struct {
UserName string `json:"user_name"`
UserPwd string `json:"user_pwd"`
} `json:"data"`
}
func CreateGetPwdRequest() (req *GetPwdRequest) {
req = &GetPwdRequest{
RpcRequest: &requests.RpcRequest{},
}
req.InitWithApiInfo(HOST, VERSION, "/api/limit/getPwd.php")
req.Method = requests.GET
return
}
func CreateGetPwdResponse() (response *GetPwdResponse) {
response = &GetPwdResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}

View File

@ -1 +0,0 @@
package www