@@ -10,12 +10,17 @@ module Snikket
class Launch < Blather::Stanza::Iq
register nil, "launch", "xmpp:snikket.org/hosting/v1"
- def self.new(type=nil, to=nil, id=nil, domain: nil)
+ def self.new(
+ type=nil, to=nil, id=nil,
+ domain: nil, region: nil, av_region: "na"
+ )
stanza = super(type || :set, to, id)
node = Nokogiri::XML::Node.new("launch", stanza.document)
node.default_namespace = registered_ns
stanza << node
stanza.domain = domain if domain
+ stanza.region = region if region
+ stanza.av_region = av_region if av_region
stanza
end
@@ -27,6 +32,22 @@ module Snikket
query << node
end
+ def region=(domain)
+ query.at_xpath("./ns:region", ns: self.class.registered_ns)&.remove
+ node = Nokogiri::XML::Node.new("region", document)
+ node.default_namespace = self.class.registered_ns
+ node.content = domain
+ query << node
+ end
+
+ def av_region=(domain)
+ query.at_xpath("./ns:av-region", ns: self.class.registered_ns)&.remove
+ node = Nokogiri::XML::Node.new("av-region", document)
+ node.default_namespace = self.class.registered_ns
+ node.content = domain
+ query << node
+ end
+
def query
at_xpath("./ns:launch", ns: self.class.registered_ns)
end