web/lib/Zend/Service/SlideShare.php
changeset 807 877f952ae2bd
parent 207 621fa6caec0c
child 1230 68c69c656a2c
--- a/web/lib/Zend/Service/SlideShare.php	Thu Mar 21 17:31:31 2013 +0100
+++ b/web/lib/Zend/Service/SlideShare.php	Thu Mar 21 19:50:53 2013 +0100
@@ -15,9 +15,9 @@
  * @category   Zend
  * @package    Zend_Service
  * @subpackage SlideShare
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: SlideShare.php 20096 2010-01-06 02:05:09Z bkarwin $
+ * @version    $Id: SlideShare.php 25283 2013-03-09 10:07:13Z frosch $
  */
 
 /**
@@ -44,12 +44,11 @@
  * @package    Zend_Service
  * @subpackage SlideShare
  * @throws     Zend_Service_SlideShare_Exception
- * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  * @license    http://framework.zend.com/license/new-bsd     New BSD License
  */
 class Zend_Service_SlideShare
 {
-
     /**
      * Web service result code mapping
      */
@@ -71,17 +70,17 @@
     /**
      * Slide share Web service communication URIs
      */
-    const SERVICE_UPLOAD_URI                  = 'http://www.slideshare.net/api/1/upload_slideshow';
-    const SERVICE_GET_SHOW_URI                = 'http://www.slideshare.net/api/1/get_slideshow';
-    const SERVICE_GET_SHOW_BY_USER_URI        = 'http://www.slideshare.net/api/1/get_slideshow_by_user';
-    const SERVICE_GET_SHOW_BY_TAG_URI         = 'http://www.slideshare.net/api/1/get_slideshow_by_tag';
-    const SERVICE_GET_SHOW_BY_GROUP_URI       = 'http://www.slideshare.net/api/1/get_slideshows_from_group';
+    const SERVICE_UPLOAD_URI            = 'https://www.slideshare.net/api/2/upload_slideshow';
+    const SERVICE_GET_SHOW_URI          = 'https://www.slideshare.net/api/2/get_slideshow';
+    const SERVICE_GET_SHOW_BY_USER_URI  = 'https://www.slideshare.net/api/2/get_slideshows_by_user';
+    const SERVICE_GET_SHOW_BY_TAG_URI   = 'https://www.slideshare.net/api/2/get_slideshows_by_tag';
+    const SERVICE_GET_SHOW_BY_GROUP_URI = 'https://www.slideshare.net/api/2/get_slideshows_by_group';
 
     /**
      * The MIME type of Slideshow files
      *
      */
-    const POWERPOINT_MIME_TYPE    = "application/vnd.ms-powerpoint";
+    const POWERPOINT_MIME_TYPE = "application/vnd.ms-powerpoint";
 
     /**
      * The API key to use in requests
@@ -147,15 +146,20 @@
     public function getHttpClient()
     {
 
-        if(!($this->_httpclient instanceof Zend_Http_Client)) {
+        if (!($this->_httpclient instanceof Zend_Http_Client)) {
             $client = new Zend_Http_Client();
-            $client->setConfig(array('maxredirects' => 2,
-                                     'timeout' => 5));
+            $client->setConfig(
+                array(
+                     'maxredirects' => 2,
+                     'timeout'      => 5
+                )
+            );
 
             $this->setHttpClient($client);
         }
 
         $this->_httpclient->resetParameters();
+
         return $this->_httpclient;
     }
 
@@ -181,10 +185,16 @@
     public function getCacheObject()
     {
 
-        if(!($this->_cacheobject instanceof Zend_Cache_Core)) {
-            $cache = Zend_Cache::factory('Core', 'File', array('lifetime' => 43200,
-                                                               'automatic_serialization' => true),
-                                                         array('cache_dir' => '/tmp'));
+        if (!($this->_cacheobject instanceof Zend_Cache_Core)) {
+            $cache = Zend_Cache::factory(
+                'Core',
+                'File',
+                array(
+                     'lifetime'                => 43200,
+                     'automatic_serialization' => true
+                ),
+                array('cache_dir' => '/tmp')
+            );
 
             $this->setCacheObject($cache);
         }
@@ -283,17 +293,19 @@
     /**
      * The Constructor
      *
-     * @param string $apikey The API key
+     * @param string $apikey       The API key
      * @param string $sharedSecret The shared secret
-     * @param string $username The username
-     * @param string $password The password
+     * @param string $username     The username
+     * @param string $password     The password
      */
-    public function __construct($apikey, $sharedSecret, $username = null, $password = null)
+    public function __construct(
+        $apikey, $sharedSecret, $username = null, $password = null
+    )
     {
         $this->setApiKey($apikey)
-             ->setSharedSecret($sharedSecret)
-             ->setUserName($username)
-             ->setPassword($password);
+            ->setSharedSecret($sharedSecret)
+            ->setUserName($username)
+            ->setPassword($password);
 
         $this->_httpclient = new Zend_Http_Client();
     }
@@ -301,41 +313,47 @@
     /**
      * Uploads the specified Slide show the the server
      *
-     * @param Zend_Service_SlideShare_SlideShow $ss The slide show object representing the slide show to upload
-     * @param boolean $make_src_public Determines if the the slide show's source file is public or not upon upload
+     * @param Zend_Service_SlideShare_SlideShow $ss            The slide show object representing the slide show to upload
+     * @param boolean                           $makeSrcPublic Determines if the the slide show's source file is public or not upon upload
      * @return Zend_Service_SlideShare_SlideShow The passed Slide show object, with the new assigned ID provided
+     * @throws Zend_Service_SlideShare_Exception
      */
-    public function uploadSlideShow(Zend_Service_SlideShare_SlideShow $ss, $make_src_public = true)
+    public function uploadSlideShow(
+        Zend_Service_SlideShare_SlideShow $ss, $makeSrcPublic = true
+    )
     {
-
         $timestamp = time();
 
-        $params = array('api_key' => $this->getApiKey(),
-                        'ts' => $timestamp,
-                        'hash' => sha1($this->getSharedSecret().$timestamp),
-                        'username' => $this->getUserName(),
-                        'password' => $this->getPassword(),
-                        'slideshow_title' => $ss->getTitle());
+        $params = array(
+            'api_key'         => $this->getApiKey(),
+            'ts'              => $timestamp,
+            'hash'            => sha1($this->getSharedSecret() . $timestamp),
+            'username'        => $this->getUserName(),
+            'password'        => $this->getPassword(),
+            'slideshow_title' => $ss->getTitle()
+        );
 
         $description = $ss->getDescription();
-        $tags = $ss->getTags();
+        $tags        = $ss->getTags();
 
         $filename = $ss->getFilename();
 
-        if(!file_exists($filename) || !is_readable($filename)) {
+        if (!file_exists($filename) || !is_readable($filename)) {
             require_once 'Zend/Service/SlideShare/Exception.php';
-            throw new Zend_Service_SlideShare_Exception("Specified Slideshow for upload not found or unreadable");
+            throw new Zend_Service_SlideShare_Exception(
+                'Specified Slideshow for upload not found or unreadable'
+            );
         }
 
-        if(!empty($description)) {
+        if (!empty($description)) {
             $params['slideshow_description'] = $description;
         } else {
             $params['slideshow_description'] = "";
         }
 
-        if(!empty($tags)) {
+        if (!empty($tags)) {
             $tmp = array();
-            foreach($tags as $tag) {
+            foreach ($tags as $tag) {
                 $tmp[] = "\"$tag\"";
             }
             $params['slideshow_tags'] = implode(' ', $tmp);
@@ -343,7 +361,6 @@
             $params['slideshow_tags'] = "";
         }
 
-
         $client = $this->getHttpClient();
         $client->setUri(self::SERVICE_UPLOAD_URI);
         $client->setParameterPost($params);
@@ -352,23 +369,29 @@
         require_once 'Zend/Http/Client/Exception.php';
         try {
             $response = $client->request('POST');
-        } catch(Zend_Http_Client_Exception $e) {
+        } catch (Zend_Http_Client_Exception $e) {
             require_once 'Zend/Service/SlideShare/Exception.php';
-            throw new Zend_Service_SlideShare_Exception("Service Request Failed: {$e->getMessage()}", 0, $e);
+            throw new Zend_Service_SlideShare_Exception(
+                "Service Request Failed: {$e->getMessage()}", 0, $e
+            );
         }
 
         $sxe = simplexml_load_string($response->getBody());
 
-        if($sxe->getName() == "SlideShareServiceError") {
+        if ($sxe->getName() == "SlideShareServiceError") {
             $message = (string)$sxe->Message[0];
             list($code, $error_str) = explode(':', $message);
             require_once 'Zend/Service/SlideShare/Exception.php';
-            throw new Zend_Service_SlideShare_Exception(trim($error_str), $code);
+            throw new Zend_Service_SlideShare_Exception(trim(
+                $error_str
+            ), $code);
         }
 
-        if(!$sxe->getName() == "SlideShowUploaded") {
+        if (!$sxe->getName() == "SlideShowUploaded") {
             require_once 'Zend/Service/SlideShare/Exception.php';
-            throw new Zend_Service_SlideShare_Exception("Unknown XML Respons Received");
+            throw new Zend_Service_SlideShare_Exception(
+                'Unknown XML Respons Received'
+            );
         }
 
         $ss->setId((int)(string)$sxe->SlideShowID);
@@ -381,21 +404,24 @@
      *
      * @param int $ss_id The slide show ID
      * @return Zend_Service_SlideShare_SlideShow the Slideshow object
+     * @throws Zend_Service_SlideShare_Exception
      */
     public function getSlideShow($ss_id)
     {
         $timestamp = time();
 
-        $params = array('api_key' => $this->getApiKey(),
-                        'ts' => $timestamp,
-                        'hash' => sha1($this->getSharedSecret().$timestamp),
-                        'slideshow_id' => $ss_id);
+        $params = array(
+            'api_key'      => $this->getApiKey(),
+            'ts'           => $timestamp,
+            'hash'         => sha1($this->getSharedSecret() . $timestamp),
+            'slideshow_id' => $ss_id
+        );
 
         $cache = $this->getCacheObject();
 
         $cache_key = md5("__zendslideshare_cache_$ss_id");
 
-        if(!$retval = $cache->load($cache_key)) {
+        if (!$retval = $cache->load($cache_key)) {
             $client = $this->getHttpClient();
 
             $client->setUri(self::SERVICE_GET_SHOW_URI);
@@ -404,26 +430,31 @@
             require_once 'Zend/Http/Client/Exception.php';
             try {
                 $response = $client->request('POST');
-            } catch(Zend_Http_Client_Exception $e) {
+            } catch (Zend_Http_Client_Exception $e) {
                 require_once 'Zend/Service/SlideShare/Exception.php';
-                throw new Zend_Service_SlideShare_Exception("Service Request Failed: {$e->getMessage()}", 0, $e);
+                throw new Zend_Service_SlideShare_Exception(
+                    "Service Request Failed: {$e->getMessage()}", 0, $e
+                );
             }
 
             $sxe = simplexml_load_string($response->getBody());
 
-            if($sxe->getName() == "SlideShareServiceError") {
+            if ($sxe->getName() == "SlideShareServiceError") {
                 $message = (string)$sxe->Message[0];
                 list($code, $error_str) = explode(':', $message);
                 require_once 'Zend/Service/SlideShare/Exception.php';
-                throw new Zend_Service_SlideShare_Exception(trim($error_str), $code);
+                throw new Zend_Service_SlideShare_Exception(trim(
+                    $error_str
+                ), $code);
             }
 
-            if(!$sxe->getName() == 'Slideshows') {
+            if (!($sxe->getName() == 'Slideshow')) {
                 require_once 'Zend/Service/SlideShare/Exception.php';
-                throw new Zend_Service_SlideShare_Exception('Unknown XML Repsonse Received');
+                throw new Zend_Service_SlideShare_Exception(
+                    'Unknown XML Repsonse Received'
+                );
             }
-
-            $retval = $this->_slideShowNodeToObject(clone $sxe->Slideshow[0]);
+            $retval = $this->_slideShowNodeToObject(clone $sxe);
 
             $cache->save($retval, $cache_key);
         }
@@ -439,9 +470,13 @@
      * @param int $limit The maximum number of slide shows to retrieve
      * @return array An array of Zend_Service_SlideShare_SlideShow objects
      */
-    public function getSlideShowsByUsername($username, $offset = null, $limit = null)
+    public function getSlideShowsByUsername(
+        $username, $offset = null, $limit = null
+    )
     {
-        return $this->_getSlideShowsByType('username_for', $username, $offset, $limit);
+        return $this->_getSlideShowsByType(
+            'username_for', $username, $offset, $limit
+        );
     }
 
     /**
@@ -455,9 +490,9 @@
     public function getSlideShowsByTag($tag, $offset = null, $limit = null)
     {
 
-        if(is_array($tag)) {
+        if (is_array($tag)) {
             $tmp = array();
-            foreach($tag as $t) {
+            foreach ($tag as $t) {
                 $tmp[] = "\"$t\"";
             }
 
@@ -484,33 +519,35 @@
      * Retrieves Zend_Service_SlideShare_SlideShow object arrays based on the type of
      * list desired
      *
-     * @param string $key The type of slide show object to retrieve
-     * @param string $value The specific search query for the slide show type to look up
-     * @param int $offset The offset of the list to start retrieving from
-     * @param int $limit The maximum number of slide shows to retrieve
+     * @param string $key    The type of slide show object to retrieve
+     * @param string $value  The specific search query for the slide show type to look up
+     * @param int    $offset The offset of the list to start retrieving from
+     * @param int    $limit  The maximum number of slide shows to retrieve
      * @return array An array of Zend_Service_SlideShare_SlideShow objects
+     * @throws Zend_Service_SlideShare_Exception
      */
     protected function _getSlideShowsByType($key, $value, $offset = null, $limit = null)
     {
-
         $key = strtolower($key);
 
-        switch($key) {
+        switch ($key) {
             case 'username_for':
                 $responseTag = 'User';
-                $queryUri = self::SERVICE_GET_SHOW_BY_USER_URI;
+                $queryUri    = self::SERVICE_GET_SHOW_BY_USER_URI;
                 break;
             case 'group_name':
                 $responseTag = 'Group';
-                $queryUri = self::SERVICE_GET_SHOW_BY_GROUP_URI;
+                $queryUri    = self::SERVICE_GET_SHOW_BY_GROUP_URI;
                 break;
             case 'tag':
                 $responseTag = 'Tag';
-                $queryUri = self::SERVICE_GET_SHOW_BY_TAG_URI;
+                $queryUri    = self::SERVICE_GET_SHOW_BY_TAG_URI;
                 break;
             default:
                 require_once 'Zend/Service/SlideShare/Exception.php';
-                throw new Zend_Service_SlideShare_Exception("Invalid SlideShare Query");
+                throw new Zend_Service_SlideShare_Exception(
+                    'Invalid SlideShare Query'
+                );
         }
 
         $timestamp = time();
@@ -520,11 +557,11 @@
                         'hash' => sha1($this->getSharedSecret().$timestamp),
                         $key => $value);
 
-        if($offset !== null) {
+        if ($offset !== null) {
             $params['offset'] = (int)$offset;
         }
 
-        if($limit !== null) {
+        if ($limit !== null) {
             $params['limit'] = (int)$limit;
         }
 
@@ -532,8 +569,7 @@
 
         $cache_key = md5($key.$value.$offset.$limit);
 
-        if(!$retval = $cache->load($cache_key)) {
-
+        if (!$retval = $cache->load($cache_key)) {
             $client = $this->getHttpClient();
 
             $client->setUri($queryUri);
@@ -542,29 +578,35 @@
             require_once 'Zend/Http/Client/Exception.php';
             try {
                 $response = $client->request('POST');
-            } catch(Zend_Http_Client_Exception $e) {
+            } catch (Zend_Http_Client_Exception $e) {
                 require_once 'Zend/Service/SlideShare/Exception.php';
-                throw new Zend_Service_SlideShare_Exception("Service Request Failed: {$e->getMessage()}", 0, $e);
+                throw new Zend_Service_SlideShare_Exception(
+                    "Service Request Failed: {$e->getMessage()}", 0, $e
+                );
             }
 
             $sxe = simplexml_load_string($response->getBody());
 
-            if($sxe->getName() == "SlideShareServiceError") {
+            if ($sxe->getName() == "SlideShareServiceError") {
                 $message = (string)$sxe->Message[0];
                 list($code, $error_str) = explode(':', $message);
                 require_once 'Zend/Service/SlideShare/Exception.php';
-                throw new Zend_Service_SlideShare_Exception(trim($error_str), $code);
+                throw new Zend_Service_SlideShare_Exception(
+                    trim($error_str), $code
+                );
             }
 
-            if(!$sxe->getName() == $responseTag) {
+            if (!$sxe->getName() == $responseTag) {
                 require_once 'Zend/Service/SlideShare/Exception.php';
-                throw new Zend_Service_SlideShare_Exception('Unknown or Invalid XML Repsonse Received');
+                throw new Zend_Service_SlideShare_Exception(
+                    'Unknown or Invalid XML Repsonse Received'
+                );
             }
 
             $retval = array();
 
-            foreach($sxe->children() as $node) {
-                if($node->getName() == 'Slideshow') {
+            foreach ($sxe->children() as $node) {
+                if ($node->getName() == 'Slideshow') {
                     $retval[] = $this->_slideShowNodeToObject($node);
                 }
             }
@@ -581,12 +623,12 @@
      *
      * @param SimpleXMLElement $node The input XML from the slideshare.net service
      * @return Zend_Service_SlideShare_SlideShow The resulting object
+     * @throws Zend_Service_SlideShare_Exception
      */
     protected function _slideShowNodeToObject(SimpleXMLElement $node)
     {
 
         if($node->getName() == 'Slideshow') {
-
             $ss = new Zend_Service_SlideShare_SlideShow();
 
             $ss->setId((string)$node->ID);
@@ -597,9 +639,8 @@
             $ss->setStatus((string)$node->Status);
             $ss->setStatusDescription((string)$node->StatusDescription);
 
-            foreach(explode(",", (string)$node->Tags) as $tag) {
-
-                if(!in_array($tag, $ss->getTags())) {
+            foreach (explode(",", (string)$node->Tags) as $tag) {
+                if (!in_array($tag, $ss->getTags())) {
                     $ss->addTag($tag);
                 }
             }
@@ -610,10 +651,11 @@
             $ss->setTranscript((string)$node->Transcript);
 
             return $ss;
-
         }
 
         require_once 'Zend/Service/SlideShare/Exception.php';
-        throw new Zend_Service_SlideShare_Exception("Was not provided the expected XML Node for processing");
+        throw new Zend_Service_SlideShare_Exception(
+            'Was not provided the expected XML Node for processing'
+        );
     }
 }