qingcloud api Do not return message when retcode = 0

check retcode first,if retcode !=0 check message
This commit is contained in:
runzexia 2018-06-22 13:50:03 +08:00
parent 31a5d47787
commit c5988808db
1 changed files with 10 additions and 9 deletions

View File

@ -86,17 +86,18 @@ func (u *Unpacker) parseError() error {
retCodeValue := u.output.Elem().FieldByName("RetCode")
messageValue := u.output.Elem().FieldByName("Message")
if retCodeValue.Elem().IsValid() && retCodeValue.Type().String() == "*int" &&
messageValue.Elem().IsValid() && messageValue.Type().String() == "*string" &&
retCodeValue.Elem().Int() != 0 {
return &errors.QingCloudError{
RetCode: int(retCodeValue.Elem().Int()),
Message: messageValue.Elem().String(),
}
} else {
if !retCodeValue.Elem().IsValid() || retCodeValue.Type().String() != "*int" {
return fmt.Errorf("can not get retcode/message")
}
if retCodeValue.Elem().Int() != 0 {
if messageValue.Elem().IsValid() && messageValue.Type().String() == "*string" {
return &errors.QingCloudError{
RetCode: int(retCodeValue.Elem().Int()),
Message: messageValue.Elem().String(),
}
}
return fmt.Errorf("can not get retcode/message")
}
return nil
}