aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/AppFramework
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2016-07-20 21:30:39 +0200
committerRoeland Jago Douma <roeland@famdouma.nl>2016-07-20 22:05:43 +0200
commite42f2f26504e3fcf975c15c3d3732646e819f37e (patch)
tree480716a1d52023beb64b39551eb83b4ae217e7a7 /lib/public/AppFramework
parent020a2a6958e48f7a3a29daa2235f6729980850af (diff)
downloadnextcloud-server-e42f2f26504e3fcf975c15c3d3732646e819f37e.tar.gz
nextcloud-server-e42f2f26504e3fcf975c15c3d3732646e819f37e.zip
AppFramework do not get default response
The OCSResponse differs from other responses in that it defaults to XML. However we fell back to json by default. This makes sure that if nothing is set we don't pass anything. Which defaults then to the controllers default (which is often 'json') but in the case of the OCSResponse 'xml'.
Diffstat (limited to 'lib/public/AppFramework')
-rw-r--r--lib/public/AppFramework/Controller.php7
-rw-r--r--lib/public/AppFramework/OCSController.php14
2 files changed, 18 insertions, 3 deletions
diff --git a/lib/public/AppFramework/Controller.php b/lib/public/AppFramework/Controller.php
index daf6018cd12..c6baa5e30c1 100644
--- a/lib/public/AppFramework/Controller.php
+++ b/lib/public/AppFramework/Controller.php
@@ -104,8 +104,9 @@ abstract class Controller {
* @param string $acceptHeader
* @return string the responder type
* @since 7.0.0
+ * @since 9.1.0 Added default parameter
*/
- public function getResponderByHTTPHeader($acceptHeader) {
+ public function getResponderByHTTPHeader($acceptHeader, $default='json') {
$headers = explode(',', $acceptHeader);
// return the first matching responder
@@ -119,8 +120,8 @@ abstract class Controller {
}
}
- // no matching header defaults to json
- return 'json';
+ // no matching header return default
+ return $default;
}
diff --git a/lib/public/AppFramework/OCSController.php b/lib/public/AppFramework/OCSController.php
index e118b34250d..e67c0fc21ae 100644
--- a/lib/public/AppFramework/OCSController.php
+++ b/lib/public/AppFramework/OCSController.php
@@ -31,6 +31,7 @@ namespace OCP\AppFramework;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\OCSResponse;
+use OCP\AppFramework\Http\Response;
use OCP\IRequest;
@@ -69,6 +70,19 @@ abstract class OCSController extends ApiController {
});
}
+ /**
+ * Since the OCS endpoints default to XML we need to find out the format
+ * again
+ * @param mixed $response the value that was returned from a controller and
+ * is not a Response instance
+ * @param string $format the format for which a formatter has been registered
+ * @throws \DomainException if format does not match a registered formatter
+ * @return Response
+ * @since 9.1.0
+ */
+ public function buildResponse($response, $format = 'xml') {
+ return parent::buildResponse($response, $format);
+ }
/**
* Unwrap data and build ocs response