You are here

class LookupXmlToItemsArray in Amazon Product Advertisement API 8.2

Hierarchy

Expanded class hierarchy of LookupXmlToItemsArray

File

src/LookupXmlToItemsArray.php, line 12
Contains Drupal\amazon\LookupXmlToItemsArray

Namespace

Drupal\amazon
View source
class LookupXmlToItemsArray implements ResponseTransformerInterface {
  use LoggerChannelTrait;

  /**
   * Log an error during API calls.
   *
   * @param string $error_code
   *   Amazon API error code.
   * @param string $error_message
   *   Amazon API error message.
   */
  public function logError($error_code, $error_message) {
    $logger = $this
      ->getLogger('amazon');
    $logger
      ->error('@code: "@message', [
      '@code' => $error_code,
      '@message' => $error_message,
    ]);
  }

  /**
   * @param string $response
   *   XML response from Amazon's REST services.
   *
   * @return array
   *   Array of SimpleXMLElement objects representing the response from Amazon.
   */
  public function transform($response) {
    $xml = simplexml_load_string($response);
    $xml
      ->registerXPathNamespace("amazon", "http://webservices.amazon.com/AWSECommerceService/2011-08-01");
    $errors = $xml
      ->xpath('//amazon:Errors');
    foreach ($errors as $error) {
      $error_code = (string) $error->Error->Code;
      $error_message = (string) $error->Error->Message;
      $this
        ->logError($error_code, $error_message);
    }
    $elements = $xml
      ->xpath('//amazon:ItemLookupResponse/amazon:Items/amazon:Item');
    return $elements;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
LoggerChannelTrait::$loggerFactory protected property The logger channel factory service.
LoggerChannelTrait::getLogger protected function Gets the logger for a specific channel.
LoggerChannelTrait::setLoggerFactory public function Injects the logger channel factory.
LookupXmlToItemsArray::logError public function Log an error during API calls.
LookupXmlToItemsArray::transform public function