From: tomneedham Date: Thu, 14 Nov 2013 01:21:54 +0000 (+0000) Subject: Merge multiple failed third party responses when returning the result X-Git-Tag: v6.0.0beta5~33^2~1 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=1449437c9ec2e1ad9a58ba12abd9a3b27d8e39f1;p=nextcloud-server.git Merge multiple failed third party responses when returning the result --- diff --git a/lib/private/api.php b/lib/private/api.php index 3df2095ad4f..03d7b7382a5 100644 --- a/lib/private/api.php +++ b/lib/private/api.php @@ -177,9 +177,16 @@ class OC_API { } elseif(!empty($shipped['succeeded'])) { $responses = array_merge($shipped['succeeded'], $thirdparty['succeeded']); } elseif(!empty($thirdparty['failed'])) { - // Return the third party failure result - $response = reset($thirdparty['failed']); - return $response['response']; + // Merge failed responses if more than one + $data = array(); + $meta = array(); + foreach($thirdparty['failed'] as $failure) { + $data = array_merge_recursive($data, $failure['response']->getData()); + } + $picked = reset($thirdparty['failed']); + $code = $picked['response']->getStatusCode(); + $response = new OC_OCS_Result($data, $code); + return $response; } else { $responses = $thirdparty['succeeded']; }