From e0e72eeef80d100b6456ac518e0bbdbbc76b2002 Mon Sep 17 00:00:00 2001 From: Timothy J Warren Date: Fri, 15 Jun 2018 08:46:28 -0400 Subject: [PATCH] Give a better error message on failing to parse an XML API response --- src/API/MAL/MALTrait.php | 4 ++-- src/API/XML.php | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/API/MAL/MALTrait.php b/src/API/MAL/MALTrait.php index 4922b451..336fa041 100644 --- a/src/API/MAL/MALTrait.php +++ b/src/API/MAL/MALTrait.php @@ -143,7 +143,7 @@ trait MALTrait { { if ($logger) { - $logger->warning('Non 200 response for api call', $response->getBody()); + $logger->warning('Non 200 response for api call', (array)$response->getBody()); } } @@ -182,7 +182,7 @@ trait MALTrait { { if ($logger) { - $logger->warning('Non 201 response for POST api call', $response->getBody()); + $logger->warning('Non 201 response for POST api call', (array)$response->getBody()); } } diff --git a/src/API/XML.php b/src/API/XML.php index 48c35e6d..8908bbb0 100644 --- a/src/API/XML.php +++ b/src/API/XML.php @@ -16,7 +16,7 @@ namespace Aviat\AnimeClient\API; -use DOMDocument, DOMNode, DOMNodeList; +use DOMDocument, DOMNode, DOMNodeList, InvalidArgumentException; /** * XML <=> PHP Array codec @@ -115,7 +115,13 @@ class XML { $xml = static::stripXMLWhitespace($xml); $dom = new DOMDocument(); - $dom->loadXML($xml); + $hasLoaded = @$dom->loadXML($xml); + + if ( ! $hasLoaded) + { + throw new InvalidArgumentException('Failed to load XML'); + } + $root = $dom->documentElement; $data[$root->tagName] = [];