in golang/client/client.go [2161:2205]
func callSSEApi_opResponse(_yield chan *SSEResponse, _yieldErr chan error, response_ *dara.Response) {
if (dara.IntValue(response_.StatusCode) >= 400) && (dara.IntValue(response_.StatusCode) < 600) {
err := map[string]interface{}{}
if !dara.IsNil(response_.Headers["content-type"]) && dara.StringValue(response_.Headers["content-type"]) == "text/xml;charset=utf-8" {
_str, _err := dara.ReadAsString(response_.Body)
if _err != nil {
_yieldErr <- _err
return
}
respMap := dara.ParseXml(_str, nil)
err = dara.ToMap(respMap["Error"])
} else {
_res, _err := dara.ReadAsJSON(response_.Body)
if _err != nil {
_yieldErr <- _err
return
}
err = dara.ToMap(_res)
}
err["statusCode"] = response_.StatusCode
_err := dara.NewSDKError(map[string]interface{}{
"code": dara.ToString(dara.Default(err["Code"], err["code"])),
"message": "code: " + dara.ToString(dara.IntValue(response_.StatusCode)) + ", " + dara.ToString(dara.Default(err["Message"], err["message"])) + " request id: " + dara.ToString(dara.Default(err["RequestId"], err["requestId"])),
"data": err,
"description": dara.ToString(dara.Default(err["Description"], err["description"])),
"accessDeniedDetail": dara.Default(err["AccessDeniedDetail"], err["accessDeniedDetail"]),
})
_yieldErr <- _err
return
}
events := make(chan *dara.SSEEvent, 1)
dara.ReadAsSSE(response_.Body, events, _yieldErr)
for event := range events {
_yield <- &SSEResponse{
StatusCode: response_.StatusCode,
Headers: response_.Headers,
Event: event,
}
}
return
}