From 97530c524387af3e938084099b0b820db9e7bed9 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 28 Jun 2023 08:52:49 -0500 Subject: [PATCH] Support snikket region and av-region, default av-region to na --- lib/snikket.rb | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/snikket.rb b/lib/snikket.rb index 013b0945dbcc10d74f0cf474256f20918e812708..0896a7bcd8d4f25167eb17631419f53c5251c325 100644 --- a/lib/snikket.rb +++ b/lib/snikket.rb @@ -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