From 142e5f712b2a4653cc9a407ef40814384e711804 Mon Sep 17 00:00:00 2001 From: Klaus Date: Fri, 29 Jan 2016 11:46:22 +0100 Subject: build v3.0.0-beta1b --- build/lib/stanzahandlers/message.php | 80 ++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 build/lib/stanzahandlers/message.php (limited to 'build/lib/stanzahandlers/message.php') diff --git a/build/lib/stanzahandlers/message.php b/build/lib/stanzahandlers/message.php new file mode 100644 index 0000000..32585be --- /dev/null +++ b/build/lib/stanzahandlers/message.php @@ -0,0 +1,80 @@ +messageMapper = $messageMapper; + } + + /** + * @param array $stanza + */ + public function handle(array $stanza) { + $to = $this->getAttribute($stanza, 'to'); + $pos = strpos($to, '@'); + $this->to = substr($to, 0, $pos); + foreach($stanza['value'] as $keyRaw=>$value) { + // remove namespace from key as it is unneeded and cause problems + $key = substr($keyRaw, strpos($keyRaw, '}') + 1, strlen($keyRaw)); + // fetch namespace from key to readd it + $ns = substr($keyRaw, 1, strpos($keyRaw, '}')-1); + + $this->values[] = [ + "name" => $key, + "value" => (string)$value, + "attributes" => ["xmlns" => $ns] + ]; + } + $this->type = $this->getAttribute($stanza, 'type'); + $this->msgId = $this->getAttribute($stanza, 'id'); + + $message = new MessageEntity(); + $message->setTo($this->to); + $message->setFrom($this->from); + $message->setValue($this->values); + $message->setType($this->type); + $this->messageMapper->insert($message); + $this->values = []; + } + +} \ No newline at end of file -- cgit v1.2.3