From 67f80621e624af3c2340c8203915a397c7768d6d Mon Sep 17 00:00:00 2001 From: Edwin Jacobs Date: Wed, 4 Dec 2019 13:40:29 +0100 Subject: [PATCH] Fixed default data if response is malformed --- .../Tweakwise/Model/Bus/Type/Abstract.php | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/app/code/community/Emico/Tweakwise/Model/Bus/Type/Abstract.php b/app/code/community/Emico/Tweakwise/Model/Bus/Type/Abstract.php index 6fd660a..ff29d9e 100644 --- a/app/code/community/Emico/Tweakwise/Model/Bus/Type/Abstract.php +++ b/app/code/community/Emico/Tweakwise/Model/Bus/Type/Abstract.php @@ -50,7 +50,7 @@ protected function setDataFromField(SimpleXMLElement $xmlElement, $field, $type, $data = $useProvidedAsData ? $xmlElement : $xmlElement->{$field}; if (!is_object($data)) { - $this->setData($dataKey, ''); + $this->setData($dataKey, $this->resolveDefaultValue($count)); return $this; } @@ -76,6 +76,22 @@ protected function setDataFromField(SimpleXMLElement $xmlElement, $field, $type, return $this; } + /** + * @param $count + * @return array|string|null + */ + protected function resolveDefaultValue($count) + { + switch ($count) { + case self::ELEMENT_COUNT_ONE: + case self::ELEMENT_COUNT_NONE_OR_ONE: + return ''; + case self::ELEMENT_COUNT_NONE_OR_MORE: + case self::ELEMENT_COUNT_ONE_OR_MORE: + return []; + } + } + /** * @param SimpleXMLElement $xmlElement * @param string $type @@ -120,4 +136,4 @@ protected function setDataFromAttribute(SimpleXMLElement $element, $attribute, $ $this->setData($dataKey, $value); } } -} \ No newline at end of file +}