alibabacloud-gateway-dingtalk/golang/client/client.go (112 lines of code) (raw):

// This file is auto-generated, don't edit it. Thanks. package client import ( spi "github.com/alibabacloud-go/alibabacloud-gateway-spi/client" util "github.com/alibabacloud-go/tea-utils/v2/service" "github.com/alibabacloud-go/tea/tea" ) type Client struct { spi.Client } func NewClient() (*Client, error) { client := new(Client) err := client.Init() return client, err } func (client *Client) Init() (_err error) { _err = client.Client.Init() if _err != nil { return _err } return nil } func (client *Client) ModifyConfiguration(context *spi.InterceptorContext, attributeMap *spi.AttributeMap) (_err error) { return _err } func (client *Client) ModifyRequest(context *spi.InterceptorContext, attributeMap *spi.AttributeMap) (_err error) { request := context.Request config := context.Configuration request.Headers = tea.Merge(map[string]*string{ "host": config.Endpoint, "user-agent": request.UserAgent, "accept": tea.String("application/json"), }, request.Headers) if !tea.BoolValue(util.IsUnset(request.Body)) { jsonObj := util.ToJSONString(request.Body) request.Stream = tea.ToReader(jsonObj) request.Headers["content-type"] = tea.String("application/json; charset=utf-8") } return _err } func (client *Client) ModifyResponse(context *spi.InterceptorContext, attributeMap *spi.AttributeMap) (_err error) { request := context.Request response := context.Response if tea.BoolValue(util.Is4xx(response.StatusCode)) || tea.BoolValue(util.Is5xx(response.StatusCode)) { _res, _err := util.ReadAsJSON(response.Body) if _err != nil { return _err } err, _err := util.AssertAsMap(_res) if _err != nil { return _err } err["statusCode"] = response.StatusCode _err = tea.NewSDKError(map[string]interface{}{ "code": tea.ToString(client.DefaultAny(err["Code"], err["code"])), "message": "code: " + tea.ToString(tea.IntValue(response.StatusCode)) + ", " + tea.ToString(client.DefaultAny(err["Message"], err["message"])) + " request id: " + tea.ToString(client.DefaultAny(err["RequestId"], err["requestid"])), "data": err, "description": tea.ToString(client.DefaultAny(err["Description"], err["description"])), "accessDeniedDetail": client.DefaultAny(err["AccessDeniedDetail"], err["accessdenieddetail"]), }) return _err } if tea.BoolValue(util.EqualNumber(response.StatusCode, tea.Int(204))) { _, _err = util.ReadAsString(response.Body) if _err != nil { return _err } } else if tea.BoolValue(util.EqualString(request.BodyType, tea.String("binary"))) { response.DeserializedBody = response.Body } else if tea.BoolValue(util.EqualString(request.BodyType, tea.String("byte"))) { byt, _err := util.ReadAsBytes(response.Body) if _err != nil { return _err } response.DeserializedBody = byt } else if tea.BoolValue(util.EqualString(request.BodyType, tea.String("string"))) { str, _err := util.ReadAsString(response.Body) if _err != nil { return _err } response.DeserializedBody = str } else if tea.BoolValue(util.EqualString(request.BodyType, tea.String("json"))) { obj, _err := util.ReadAsJSON(response.Body) if _err != nil { return _err } res, _err := util.AssertAsMap(obj) if _err != nil { return _err } response.DeserializedBody = res } else if tea.BoolValue(util.EqualString(request.BodyType, tea.String("array"))) { arr, _err := util.ReadAsJSON(response.Body) if _err != nil { return _err } response.DeserializedBody = arr } else { response.DeserializedBody, _err = util.ReadAsString(response.Body) if _err != nil { return _err } } return _err } func (client *Client) DefaultAny(inputValue interface{}, defaultValue interface{}) (_result interface{}) { if tea.BoolValue(util.IsUnset(inputValue)) { _result = defaultValue return _result } _result = inputValue return _result }