client.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. // This file is auto-generated, don't edit it. Thanks.
  2. package client
  3. import (
  4. spi "github.com/alibabacloud-go/alibabacloud-gateway-spi/client"
  5. util "github.com/alibabacloud-go/tea-utils/v2/service"
  6. "github.com/alibabacloud-go/tea/tea"
  7. )
  8. type Client struct {
  9. spi.Client
  10. }
  11. func NewClient() (*Client, error) {
  12. client := new(Client)
  13. err := client.Init()
  14. return client, err
  15. }
  16. func (client *Client) Init() (_err error) {
  17. _err = client.Client.Init()
  18. if _err != nil {
  19. return _err
  20. }
  21. return nil
  22. }
  23. func (client *Client) ModifyConfiguration(context *spi.InterceptorContext, attributeMap *spi.AttributeMap) (_err error) {
  24. return _err
  25. }
  26. func (client *Client) ModifyRequest(context *spi.InterceptorContext, attributeMap *spi.AttributeMap) (_err error) {
  27. request := context.Request
  28. config := context.Configuration
  29. request.Headers = tea.Merge(map[string]*string{
  30. "host": config.Endpoint,
  31. "user-agent": request.UserAgent,
  32. "accept": tea.String("application/json"),
  33. }, request.Headers)
  34. if !tea.BoolValue(util.IsUnset(request.Body)) {
  35. jsonObj := util.ToJSONString(request.Body)
  36. request.Stream = tea.ToReader(jsonObj)
  37. request.Headers["content-type"] = tea.String("application/json; charset=utf-8")
  38. }
  39. return _err
  40. }
  41. func (client *Client) ModifyResponse(context *spi.InterceptorContext, attributeMap *spi.AttributeMap) (_err error) {
  42. request := context.Request
  43. response := context.Response
  44. if tea.BoolValue(util.Is4xx(response.StatusCode)) || tea.BoolValue(util.Is5xx(response.StatusCode)) {
  45. _res, _err := util.ReadAsJSON(response.Body)
  46. if _err != nil {
  47. return _err
  48. }
  49. err, _err := util.AssertAsMap(_res)
  50. if _err != nil {
  51. return _err
  52. }
  53. err["statusCode"] = response.StatusCode
  54. _err = tea.NewSDKError(map[string]interface{}{
  55. "code": tea.ToString(client.DefaultAny(err["Code"], err["code"])),
  56. "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"])),
  57. "data": err,
  58. "description": tea.ToString(client.DefaultAny(err["Description"], err["description"])),
  59. "accessDeniedDetail": client.DefaultAny(err["AccessDeniedDetail"], err["accessdenieddetail"]),
  60. })
  61. return _err
  62. }
  63. if tea.BoolValue(util.EqualNumber(response.StatusCode, tea.Int(204))) {
  64. _, _err = util.ReadAsString(response.Body)
  65. if _err != nil {
  66. return _err
  67. }
  68. } else if tea.BoolValue(util.EqualString(request.BodyType, tea.String("binary"))) {
  69. response.DeserializedBody = response.Body
  70. } else if tea.BoolValue(util.EqualString(request.BodyType, tea.String("byte"))) {
  71. byt, _err := util.ReadAsBytes(response.Body)
  72. if _err != nil {
  73. return _err
  74. }
  75. response.DeserializedBody = byt
  76. } else if tea.BoolValue(util.EqualString(request.BodyType, tea.String("string"))) {
  77. str, _err := util.ReadAsString(response.Body)
  78. if _err != nil {
  79. return _err
  80. }
  81. response.DeserializedBody = str
  82. } else if tea.BoolValue(util.EqualString(request.BodyType, tea.String("json"))) {
  83. obj, _err := util.ReadAsJSON(response.Body)
  84. if _err != nil {
  85. return _err
  86. }
  87. res, _err := util.AssertAsMap(obj)
  88. if _err != nil {
  89. return _err
  90. }
  91. response.DeserializedBody = res
  92. } else if tea.BoolValue(util.EqualString(request.BodyType, tea.String("array"))) {
  93. arr, _err := util.ReadAsJSON(response.Body)
  94. if _err != nil {
  95. return _err
  96. }
  97. response.DeserializedBody = arr
  98. } else {
  99. response.DeserializedBody, _err = util.ReadAsString(response.Body)
  100. if _err != nil {
  101. return _err
  102. }
  103. }
  104. return _err
  105. }
  106. func (client *Client) DefaultAny(inputValue interface{}, defaultValue interface{}) (_result interface{}) {
  107. if tea.BoolValue(util.IsUnset(inputValue)) {
  108. _result = defaultValue
  109. return _result
  110. }
  111. _result = inputValue
  112. return _result
  113. }