diff --git amazon.admin.inc amazon.admin.inc index f923174..500d6cd 100644 --- amazon.admin.inc +++ amazon.admin.inc @@ -118,7 +118,7 @@ function amazon_test_form($form_state) { function amazon_test_form_submit($form, &$form_state) { $items = amazon_item_lookup($form_state['values']['asin'], TRUE); - if (is_array($items)) { + if (!empty($items) && is_array($items)) { $item = array_pop($items); amazon_item_delete($item['asin']); amazon_item_insert($item); @@ -128,5 +128,7 @@ function amazon_test_form_submit($form, &$form_state) { // causes a serialization operation. Whoops. $form_state['amazon_item'] = $item; $form_state['rebuild'] = TRUE; + } else { + drupal_set_message(t("Test failed for this ASIN. Please check the !link for messages.", array('!link' => l(t("error log"), 'admin/reports/dblog')))); } } diff --git amazon.module amazon.module index 66d3822..5583937 100644 --- amazon.module +++ amazon.module @@ -251,9 +251,13 @@ function amazon_http_request($operation, $parameters = array(), $locale = NULL) $xml = new SimpleXMLElement($results->data); return $xml; } - else { + if ($results->code == '403') { + $xml = new SimpleXMLElement($results->data); + watchdog('amazon', "Access denied accessing Amazon's AWS service: %code, %message", array('%code' => (string)$xml->Error->Code, '%message' => (string)$xml->Error->Message)); return FALSE; } + watchdog('amazon', "Error accessing Amazon AWS web service. result code=%code, error=%error", array('%code' => $results->code, '%error' => $results->error)); + return FALSE; } /** @@ -346,10 +350,12 @@ function _amazon_item_batch_lookup_from_web($item_ids = array()) { } } $items = array(); - foreach($results->Items->Item as $xml) { - $item = amazon_item_clean_xml($xml); - amazon_item_insert($item); - $items["{$item['asin']}"] = $item; + if (!empty($results->Items->Item)) { + foreach($results->Items->Item as $xml) { + $item = amazon_item_clean_xml($xml); + amazon_item_insert($item); + $items["{$item['asin']}"] = $item; + } } return $items; }