Add code error in Error struct.
This commit is contained in:
parent
dacdc4ac04
commit
a52f910d62
|
|
@ -103,6 +103,7 @@ type Presence struct {
|
||||||
// stanza, e.g. an <iq type="error"/>.
|
// stanza, e.g. an <iq type="error"/>.
|
||||||
type Error struct {
|
type Error struct {
|
||||||
XMLName xml.Name `xml:"error"`
|
XMLName xml.Name `xml:"error"`
|
||||||
|
Code string `xml:"code,attr,omitempty"`
|
||||||
Type string `xml:"type,attr"`
|
Type string `xml:"type,attr"`
|
||||||
Payload string `xml:",innerxml"`
|
Payload string `xml:",innerxml"`
|
||||||
}
|
}
|
||||||
|
|
@ -141,6 +142,12 @@ func NewError(errorType string, condition ErrorCondition, text string) *Error {
|
||||||
return &Error{Type: errorType, Payload: string(buf.Bytes())}
|
return &Error{Type: errorType, Payload: string(buf.Bytes())}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewErrorWithCode(code, errorType string, condition ErrorCondition, text string) *Error {
|
||||||
|
err := NewError(errorType, condition, text)
|
||||||
|
err.Code = code
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// Return the error text from the payload, or "" if not present.
|
// Return the error text from the payload, or "" if not present.
|
||||||
func (e Error) Text() string {
|
func (e Error) Text() string {
|
||||||
dec := xml.NewDecoder(bytes.NewBufferString(e.Payload))
|
dec := xml.NewDecoder(bytes.NewBufferString(e.Payload))
|
||||||
|
|
@ -176,8 +183,10 @@ type ErrorCondition xml.Name
|
||||||
|
|
||||||
// Stanza errors.
|
// Stanza errors.
|
||||||
var (
|
var (
|
||||||
FeatureNotImplemented = ErrorCondition{nsErrorStanzas, "feature-not-implemented"}
|
ErrorFeatureNotImplemented = ErrorCondition{nsErrorStanzas, "feature-not-implemented"}
|
||||||
RemoteServerNotFound = ErrorCondition{nsErrorStanzas, "remote-server-not-found"}
|
ErrorRemoteServerNotFound = ErrorCondition{nsErrorStanzas, "remote-server-not-found"}
|
||||||
ServiceUnavailable = ErrorCondition{nsErrorStanzas, "service-unavailable"}
|
ErrorServiceUnavailable = ErrorCondition{nsErrorStanzas, "service-unavailable"}
|
||||||
NotAuthorized = ErrorCondition{nsErrorStanzas, "not-authorized"}
|
ErrorNotAuthorized = ErrorCondition{nsErrorStanzas, "not-authorized"}
|
||||||
|
ErrorConflict = ErrorCondition{nsErrorStanzas, "conflict"}
|
||||||
|
ErrorNotAcceptable = ErrorCondition{nsErrorStanzas, "not-acceptable"}
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue