aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2015-08-10 21:33:50 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2015-09-21 11:54:46 +0200
commit2c8eaacec79169f141105a42facdd04cf48e1087 (patch)
treed3f5fb8544de8898c1a3bf7e9c2e8eeb5a27a8e1 /lib
parent6006a03ef1361f8805c323627fb6d8e9c37be9cd (diff)
downloadnextcloud-server-2c8eaacec79169f141105a42facdd04cf48e1087.tar.gz
nextcloud-server-2c8eaacec79169f141105a42facdd04cf48e1087.zip
Merge headers of ocs results
Diffstat (limited to 'lib')
-rw-r--r--lib/private/api.php18
-rw-r--r--lib/private/ocs/result.php3
2 files changed, 13 insertions, 8 deletions
diff --git a/lib/private/api.php b/lib/private/api.php
index 3c599de25a9..fde2020bcfa 100644
--- a/lib/private/api.php
+++ b/lib/private/api.php
@@ -201,7 +201,8 @@ class OC_API {
$picked = reset($shipped['failed']);
$code = $picked['response']->getStatusCode();
$meta = $picked['response']->getMeta();
- $response = new OC_OCS_Result($data, $code, $meta['message']);
+ $headers = $picked['response']->getHeaders();
+ $response = new OC_OCS_Result($data, $code, $meta['message'], $headers);
return $response;
} elseif(!empty($shipped['succeeded'])) {
$responses = array_merge($shipped['succeeded'], $thirdparty['succeeded']);
@@ -214,13 +215,16 @@ class OC_API {
$picked = reset($thirdparty['failed']);
$code = $picked['response']->getStatusCode();
$meta = $picked['response']->getMeta();
- $response = new OC_OCS_Result($data, $code, $meta['message']);
+ $headers = $picked['response']->getHeaders();
+ $response = new OC_OCS_Result($data, $code, $meta['message'], $headers);
return $response;
} else {
$responses = $thirdparty['succeeded'];
}
// Merge the successful responses
- $data = array();
+ $data = [];
+ $codes = [];
+ $header = [];
foreach($responses as $response) {
if($response['shipped']) {
@@ -228,8 +232,9 @@ class OC_API {
} else {
$data = array_merge_recursive($data, $response['response']->getData());
}
- $codes[] = array('code' => $response['response']->getStatusCode(),
- 'meta' => $response['response']->getMeta());
+ $header = array_merge_recursive($header, $response['response']->getHeaders());
+ $codes[] = ['code' => $response['response']->getStatusCode(),
+ 'meta' => $response['response']->getMeta()];
}
// Use any non 100 status codes
@@ -243,8 +248,7 @@ class OC_API {
}
}
- $result = new OC_OCS_Result($data, $statusCode, $statusMessage);
- return $result;
+ return new OC_OCS_Result($data, $statusCode, $statusMessage, $header);
}
/**
diff --git a/lib/private/ocs/result.php b/lib/private/ocs/result.php
index 42b6166b823..78c0b3bdd6e 100644
--- a/lib/private/ocs/result.php
+++ b/lib/private/ocs/result.php
@@ -51,7 +51,7 @@ class OC_OCS_Result{
* @param int $code
* @param null|string $message
*/
- public function __construct($data=null, $code=100, $message=null) {
+ public function __construct($data = null, $code = 100, $message = null, $headers = []) {
if ($data === null) {
$this->data = array();
} elseif (!is_array($data)) {
@@ -61,6 +61,7 @@ class OC_OCS_Result{
}
$this->statusCode = $code;
$this->message = $message;
+ $this->headers = $headers;
}
/**