Allow formatting IOT Control SetResponse

This commit is contained in:
Mickael Remond 2016-02-15 16:33:27 +01:00
parent 268acbff07
commit 57835bfcb5
2 changed files with 27 additions and 10 deletions

View File

@ -2,16 +2,6 @@ package iot
import "encoding/xml" import "encoding/xml"
/*
type Control struct {
ControlSet ControlSet `xml:",omitempty"`
ControlGetForm ControlGetForm `xml:",omitempty"`
}
func (*Control) IQPayload() {
}
*/
type ControlSet struct { type ControlSet struct {
XMLName xml.Name `xml:"urn:xmpp:iot:control set"` XMLName xml.Name `xml:"urn:xmpp:iot:control set"`
Fields []ControlField `xml:",any"` Fields []ControlField `xml:",any"`
@ -29,3 +19,10 @@ type ControlField struct {
Name string `xml:"name,attr,omitempty"` Name string `xml:"name,attr,omitempty"`
Value string `xml:"value,attr,omitempty"` Value string `xml:"value,attr,omitempty"`
} }
type ControlSetResponse struct {
XMLName xml.Name `xml:"urn:xmpp:iot:control setResponse"`
}
func (*ControlSetResponse) IsIQPayload() {
}

View File

@ -2,6 +2,7 @@ package xmpp
import ( import (
"encoding/xml" "encoding/xml"
"fmt"
"github.com/processone/gox/xmpp/iot" "github.com/processone/gox/xmpp/iot"
) )
@ -73,3 +74,22 @@ func (iq *ClientIQ) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
} }
} }
} }
func (iq *ClientIQ) XMPPFormat() string {
if iq.Payload != nil {
var payload []byte
var err error
if payload, err = xml.Marshal(iq.Payload); err != nil {
return fmt.Sprintf("<iq to='%s' type='%s' id='%s' xml:lang='en'>"+
"</iq>",
iq.To, iq.Type, iq.Id)
}
return fmt.Sprintf("<iq to='%s' type='%s' id='%s' xml:lang='en'>"+
"%s</iq>",
iq.To, iq.Type, iq.Id, payload)
}
return fmt.Sprintf("<iq to='%s' type='%s' id='%s' xml:lang='en'>"+
"%s</iq>",
iq.To, iq.Type, iq.Id,
iq.RawXML)
}