Services_Scribd
[ class tree: Services_Scribd ] [ index: Services_Scribd ] [ all elements ]

Source for file Collections.php

Documentation is available at Collections.php

  1. <?php
  2. /**
  3.  * Interface for Scribd's "collections" API endpoints.
  4.  *
  5.  * PHP version 5.2.0+
  6.  *
  7.  * LICENSE: This source file is subject to the New BSD license that is
  8.  * available through the world-wide-web at the following URI:
  9.  * http://www.opensource.org/licenses/bsd-license.php. If you did not receive
  10.  * a copy of the New BSD License and are unable to obtain it through the web,
  11.  * please send a note to license@php.net so we can mail you a copy immediately.
  12.  *
  13.  * @category  Services
  14.  * @package   Services_Scribd
  15.  * @author    Rich Schumacher <rich.schu@gmail.com>
  16.  * @copyright 2013 Rich Schumacher <rich.schu@gmail.com>
  17.  * @license   http://www.opensource.org/licenses/bsd-license.php New BSD License
  18.  * @version   Release: 0.2.0
  19.  * @link      http://pear.php.net/package/Services_Scribd
  20.  */
  21.  
  22. require_once 'Services/Scribd/Common.php';
  23.  
  24. /**
  25.  * The interface for the "collections" API endpoints.  Provides all interaction
  26.  * that is associated with a collection of documents, such as creating and
  27.  * deleting collections as well as adding and removing documents to those
  28.  * collections.
  29.  *
  30.  * @category  Services
  31.  * @package   Services_Scribd
  32.  * @author    Rich Schumacher <rich.schu@gmail.com>
  33.  * @copyright 2013 Rich Schumacher <rich.schu@gmail.com>
  34.  * @license   http://www.opensource.org/licenses/bsd-license.php New BSD License
  35.  * @link      http://www.scribd.com/developers/platform/api
  36.  */
  37. {
  38.     /**
  39.      * Array of API endpoints that are supported
  40.      *
  41.      * @var array 
  42.      */
  43.     protected $validEndpoints = array(
  44.         'addDoc',
  45.         'create',
  46.         'delete',
  47.         'getList',
  48.         'listDocs',
  49.         'removeDoc',
  50.         'update'
  51.     );
  52.  
  53.     /**
  54.      * Adds a document to an existing collection.
  55.      *
  56.      * @param integer $docId        ID of the document to add
  57.      * @param integer $collectionId ID of the collection to add to
  58.      *
  59.      * @link http://www.scribd.com/developers/platform/api/collections_adddoc
  60.      * @return boolean 
  61.      */
  62.     public function addDoc($docId$collectionId)
  63.     {
  64.         $this->arguments['doc_id']        $docId;
  65.         $this->arguments['collection_id'$collectionId;
  66.  
  67.         $response $this->call('collections.addDoc'HTTP_Request2::METHOD_POST);
  68.  
  69.         return (string) $response['stat'== 'ok';
  70.     }
  71.  
  72.     /**
  73.      * Creates a new collection.
  74.      *
  75.      * @param string $name        Name of the collection
  76.      * @param string $description Description of the collection
  77.      * @param string $privacyType Privacy setting, either 'public' or 'private'
  78.      *
  79.      * @link http://www.scribd.com/developers/platform/api/collections_create
  80.      * @return integer The ID of the created collection
  81.      */
  82.     public function create($name$description = null$privacyType 'public')
  83.     {
  84.         $this->arguments['name']         $name;
  85.         $this->arguments['description']  $description;
  86.         $this->arguments['privacy_type'$privacyType;
  87.  
  88.         $response $this->call('collections.create'HTTP_Request2::METHOD_POST);
  89.  
  90.         return (int) $response->collection_id;
  91.     }
  92.  
  93.     /**
  94.      * Deletes a collection.
  95.      *
  96.      * @param integer $collectionId ID of the colleciton to update
  97.      *
  98.      * @link http://www.scribd.com/developers/platform/api/collections_delete
  99.      * @return boolean 
  100.      */
  101.     public function delete($collectionId)
  102.     {
  103.         $this->arguments['collection_id'$collectionId;
  104.  
  105.         $response $this->call('collections.delete'HTTP_Request2::METHOD_POST);
  106.  
  107.         return (string) $response['stat'== 'ok';
  108.     }
  109.  
  110.     /**
  111.      * Retrieves a list of collections for a given user.
  112.      *
  113.      * @param string $privacyType Privacy sope, either 'public' or 'private'.
  114.      *  If omitted, all document collections are returned.
  115.      *
  116.      * @link http://www.scribd.com/developers/platform/api/collections_getlist
  117.      * @return SimpleXMLElement 
  118.      */
  119.     public function getList($privacyType = null)
  120.     {
  121.         $this->arguments['scope'$privacyType;
  122.  
  123.         $response $this->call('collections.getList'HTTP_Request2::METHOD_GET);
  124.  
  125.         return $response->resultset;
  126.     }
  127.  
  128.     /**
  129.      * Retrieves a list of documents in a given collection.
  130.      *
  131.      * @param integer $collectionId ID of the collection to add to
  132.      * @param integer $limit        Max number of documents to return
  133.      * @param integer $offset       Offset into the list of documents
  134.      *
  135.      * @link http://www.scribd.com/developers/platform/api/collections_listdocs
  136.      * @return SimpleXMLElement 
  137.      */
  138.     public function listDocs($collectionId$limit = null$offset = null)
  139.     {
  140.         $this->arguments['collection_id'$collectionId;
  141.         $this->arguments['limit']         $limit;
  142.         $this->arguments['offset']        $offset;
  143.  
  144.         $response $this->call('collections.listDocs'HTTP_Request2::METHOD_GET);
  145.  
  146.         return $response->result_set;
  147.     }
  148.  
  149.     /**
  150.      * Removes a document to an existing collection.
  151.      *
  152.      * @param integer $docId        ID of the document to add
  153.      * @param integer $collectionId ID of the collection to add to
  154.      *
  155.      * @link http://www.scribd.com/developers/platform/api/collections_removedoc
  156.      * @return boolean 
  157.      */
  158.     public function removeDoc($docId$collectionId)
  159.     {
  160.         $this->arguments['doc_id']        $docId;
  161.         $this->arguments['collection_id'$collectionId;
  162.  
  163.         $response $this->call('collections.removeDoc'HTTP_Request2::METHOD_POST);
  164.  
  165.         return (string) $response['stat'== 'ok';
  166.     }
  167.  
  168.     /**
  169.      * Updates a new collection's name, description or privacy_type.
  170.      *
  171.      * @param integer $collectionId ID of the colleciton to update
  172.      * @param string  $name         Name of the collection
  173.      * @param string  $description  Description of the collection
  174.      * @param string  $privacyType  Privacy setting, either 'public' or 'private'
  175.      *
  176.      * @link http://www.scribd.com/developers/platform/api/collections_update
  177.      * @return boolean 
  178.      */
  179.     public function update($collectionId$name = null$description = null,
  180.         $privacyType = null
  181.     {
  182.         $this->arguments['collection_id'$collectionId;
  183.         $this->arguments['name']          $name;
  184.         $this->arguments['description']   $description;
  185.         $this->arguments['privacy_type']  $privacyType;
  186.  
  187.         $response $this->call('collections.update'HTTP_Request2::METHOD_POST);
  188.  
  189.         return (string) $response['stat'== 'ok';
  190.     }
  191. }

Documentation generated on Sat, 06 Apr 2013 14:30:03 +0000 by phpDocumentor 1.4.3. PEAR Logo Copyright © PHP Group 2004.