web/lib/Zend/Service/Amazon.php
changeset 807 877f952ae2bd
parent 207 621fa6caec0c
child 1230 68c69c656a2c
equal deleted inserted replaced
805:5e7a0fedabdf 807:877f952ae2bd
    14  * to license@zend.com so we can send you a copy immediately.
    14  * to license@zend.com so we can send you a copy immediately.
    15  *
    15  *
    16  * @category   Zend
    16  * @category   Zend
    17  * @package    Zend_Service
    17  * @package    Zend_Service
    18  * @subpackage Amazon
    18  * @subpackage Amazon
    19  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
    19  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    20  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    20  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    21  * @version    $Id: Amazon.php 20096 2010-01-06 02:05:09Z bkarwin $
    21  * @version    $Id: Amazon.php 24782 2012-05-09 12:04:50Z adamlundrigan $
    22  */
    22  */
    23 
    23 
    24 /**
    24 /**
    25  * @see Zend_Rest_Client
    25  * @see Zend_Rest_Client
    26  */
    26  */
    28 
    28 
    29 /**
    29 /**
    30  * @category   Zend
    30  * @category   Zend
    31  * @package    Zend_Service
    31  * @package    Zend_Service
    32  * @subpackage Amazon
    32  * @subpackage Amazon
    33  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
    33  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    34  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    34  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    35  */
    35  */
    36 class Zend_Service_Amazon
    36 class Zend_Service_Amazon
    37 {
    37 {
    38     /**
    38     /**
   102      * Search for Items
   102      * Search for Items
   103      *
   103      *
   104      * @param  array $options Options to use for the Search Query
   104      * @param  array $options Options to use for the Search Query
   105      * @throws Zend_Service_Exception
   105      * @throws Zend_Service_Exception
   106      * @return Zend_Service_Amazon_ResultSet
   106      * @return Zend_Service_Amazon_ResultSet
   107      * @see http://www.amazon.com/gp/aws/sdk/main.html/102-9041115-9057709?s=AWSEcommerceService&v=2005-10-05&p=ApiReference/ItemSearchOperation
   107      * @see http://www.amazon.com/gp/aws/sdk/main.html/102-9041115-9057709?s=AWSEcommerceService&v=2011-08-01&p=ApiReference/ItemSearchOperation
   108      */
   108      */
   109     public function itemSearch(array $options)
   109     public function itemSearch(array $options)
   110     {
   110     {
   111         $client = $this->getRestClient();
   111         $client = $this->getRestClient();
   112         $client->setUri($this->_baseUri);
   112         $client->setUri($this->_baseUri);
   140     /**
   140     /**
   141      * Look up item(s) by ASIN
   141      * Look up item(s) by ASIN
   142      *
   142      *
   143      * @param  string $asin    Amazon ASIN ID
   143      * @param  string $asin    Amazon ASIN ID
   144      * @param  array  $options Query Options
   144      * @param  array  $options Query Options
   145      * @see http://www.amazon.com/gp/aws/sdk/main.html/102-9041115-9057709?s=AWSEcommerceService&v=2005-10-05&p=ApiReference/ItemLookupOperation
   145      * @see http://www.amazon.com/gp/aws/sdk/main.html/102-9041115-9057709?s=AWSEcommerceService&v=2011-08-01&p=ApiReference/ItemLookupOperation
   146      * @throws Zend_Service_Exception
   146      * @throws Zend_Service_Exception
   147      * @return Zend_Service_Amazon_Item|Zend_Service_Amazon_ResultSet
   147      * @return Zend_Service_Amazon_Item|Zend_Service_Amazon_ResultSet
   148      */
   148      */
   149     public function itemLookup($asin, array $options = array())
   149     public function itemLookup($asin, array $options = array())
   150     {
   150     {
   169 
   169 
   170         $dom = new DOMDocument();
   170         $dom = new DOMDocument();
   171         $dom->loadXML($response->getBody());
   171         $dom->loadXML($response->getBody());
   172         self::_checkErrors($dom);
   172         self::_checkErrors($dom);
   173         $xpath = new DOMXPath($dom);
   173         $xpath = new DOMXPath($dom);
   174         $xpath->registerNamespace('az', 'http://webservices.amazon.com/AWSECommerceService/2005-10-05');
   174         $xpath->registerNamespace('az', 'http://webservices.amazon.com/AWSECommerceService/2011-08-01');
   175         $items = $xpath->query('//az:Items/az:Item');
   175         $items = $xpath->query('//az:Items/az:Item');
   176 
   176 
   177         if ($items->length == 1) {
   177         if ($items->length == 1) {
   178             /**
   178             /**
   179              * @see Zend_Service_Amazon_Item
   179              * @see Zend_Service_Amazon_Item
   227     protected function _prepareOptions($query, array $options, array $defaultOptions)
   227     protected function _prepareOptions($query, array $options, array $defaultOptions)
   228     {
   228     {
   229         $options['AWSAccessKeyId'] = $this->appId;
   229         $options['AWSAccessKeyId'] = $this->appId;
   230         $options['Service']        = 'AWSECommerceService';
   230         $options['Service']        = 'AWSECommerceService';
   231         $options['Operation']      = (string) $query;
   231         $options['Operation']      = (string) $query;
   232         $options['Version']        = '2005-10-05';
   232         $options['Version']        = '2011-08-01';
   233 
   233 
   234         // de-canonicalize out sort key
   234         // de-canonicalize out sort key
   235         if (isset($options['ResponseGroup'])) {
   235         if (isset($options['ResponseGroup'])) {
   236             $responseGroup = explode(',', $options['ResponseGroup']);
   236             $responseGroup = explode(',', $options['ResponseGroup']);
   237 
   237 
   300      * @return void
   300      * @return void
   301      */
   301      */
   302     protected static function _checkErrors(DOMDocument $dom)
   302     protected static function _checkErrors(DOMDocument $dom)
   303     {
   303     {
   304         $xpath = new DOMXPath($dom);
   304         $xpath = new DOMXPath($dom);
   305         $xpath->registerNamespace('az', 'http://webservices.amazon.com/AWSECommerceService/2005-10-05');
   305         $xpath->registerNamespace('az', 'http://webservices.amazon.com/AWSECommerceService/2011-08-01');
   306 
   306 
   307         if ($xpath->query('//az:Error')->length >= 1) {
   307         if ($xpath->query('//az:Error')->length >= 1) {
   308             $code = $xpath->query('//az:Error/az:Code/text()')->item(0)->data;
   308             $code = $xpath->query('//az:Error/az:Code/text()')->item(0)->data;
   309             $message = $xpath->query('//az:Error/az:Message/text()')->item(0)->data;
   309             $message = $xpath->query('//az:Error/az:Message/text()')->item(0)->data;
   310 
   310