Author: chabotc
Date: Fri Nov 14 10:44:33 2008
New Revision: 714096
URL: http://svn.apache.org/viewvc?rev=714096&view=rev
Log:
Adding missing file
Added:
incubator/shindig/trunk/php/src/social/converters/InputBasicXmlConverter.php
Added:
incubator/shindig/trunk/php/src/social/converters/InputBasicXmlConverter.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/social/converters/InputBasicXmlConverter.php?rev=714096&view=auto
==============================================================================
---
incubator/shindig/trunk/php/src/social/converters/InputBasicXmlConverter.php
(added)
+++
incubator/shindig/trunk/php/src/social/converters/InputBasicXmlConverter.php
Fri Nov 14 10:44:33 2008
@@ -0,0 +1,81 @@
+<?php
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+/**
+ * Basic methods for InputAtomConverter and InputXmlConverter.
+ */
+class InputBasicXmlConverter {
+
+ public function loadString($requestParam, $namespace = null)
+ {
+ return simplexml_load_string($requestParam, 'SimpleXMLElement',
LIBXML_NOCDATA, $namespace);
+ }
+
+ public function convertActivities($xml, $activityXml)
+ {
+ $activity = array();
+ if (! isset($xml->title)) {
+ throw new Exception("Mallformed activity xml");
+ }
+ // remember to either type cast to (string) or trim() the
string so we don't get
+ // SimpleXMLString types in the internal data representation. I
often prefer
+ // using trim() since it cleans up the data too
+ $activity['id'] = isset($xml->id) ? trim($xml->id) : '';
+ $activity['title'] = trim($xml->title);
+ $activity['body'] = isset($xml->summary) ? trim($xml->summary)
: '';
+ $activity['streamTitle'] = isset($activityXml->streamTitle) ?
trim($activityXml->streamTitle) : '';
+ $activity['streamId'] = isset($activityXml->streamId) ?
trim($activityXml->streamId) : '';
+ $activity['updated'] = isset($xml->updated) ?
trim($xml->updated) : '';
+ if (isset($activityXml->mediaItems)) {
+ $activity['mediaItems'] = array();
+ foreach ($activityXml->mediaItems->MediaItem as
$mediaItem) {
+ $item = array();
+ if (! isset($mediaItem->type) || !
isset($mediaItem->mimeType) || ! isset($mediaItem->url)) {
+ throw new Exception("Invalid media item
in activity xml");
+ }
+ $item['type'] = trim($mediaItem->type);
+ $item['mimeType'] = trim($mediaItem->mimeType);
+ $item['url'] = trim($mediaItem->url);
+ $activity['mediaItems'][] = $item;
+ }
+ }
+ return $activity;
+ }
+
+ public function convertMessages($requestParam, $xml, $content)
+ {
+ $message = array();
+ if (! isset($xml->title) || ! isset($content)) {
+ throw new Exception("Invalid message structure");
+ }
+ $message['id'] = isset($xml->id) ? trim($xml->id) : null;
+ $message['title'] = trim($xml->title);
+ $message['body'] = trim($content);
+ // retrieve recipients by looking at the osapi name space
+ $xml = self::loadString($requestParam,
"http://opensocial.org/2008/opensocialapi");
+ if (! isset($xml->recipient)) {
+ throw new Exception("Invalid message structure");
+ }
+ $message['recipients'] = array();
+ foreach ($xml->recipient as $recipient) {
+ $message['recipients'][] = trim($recipient);
+ }
+ return $message;
+ }
+}