summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/api.php6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/api.php b/lib/api.php
index 249d7a90350..8e4c3ef29b9 100644
--- a/lib/api.php
+++ b/lib/api.php
@@ -147,6 +147,7 @@ class OC_API {
}
}
}
+
// Remove any error responses if there is one shipped response that succeeded
if(!empty($shipped['succeeded'])) {
$responses = array_merge($shipped['succeeded'], $thirdparty['succeeded']);
@@ -157,14 +158,17 @@ class OC_API {
// Maybe any that are not OC_API::RESPOND_SERVER_ERROR
$response = reset($shipped['failed']);
return $response;
- } else {
+ } elseif(!empty($thirdparty['failed'])) {
// Return the third party failure result
$response = reset($thirdparty['failed']);
return $response;
+ } else {
+ $responses = array_merge($shipped['succeeded'], $thirdparty['succeeded']);
}
// Merge the successful responses
$meta = array();
$data = array();
+
foreach($responses as $app => $response) {
if(OC_App::isShipped($app)) {
$data = array_merge_recursive($response->getData(), $data);