// if none is given try the first Accept header
if($format === null) {
$headers = $this->request->getHeader('Accept');
- $format = $controller->getResponderByHTTPHeader($headers);
+ $format = $controller->getResponderByHTTPHeader($headers, null);
}
- $response = $controller->buildResponse($response, $format);
+ if ($format !== null) {
+ $response = $controller->buildResponse($response, $format);
+ } else {
+ $response = $controller->buildResponse($response);
+ }
}
return $response;
// if none is given try the first Accept header
if($format === null) {
$headers = $this->request->getHeader('Accept');
- $format = $controller->getResponderByHTTPHeader($headers);
+ $format = $controller->getResponderByHTTPHeader($headers, 'xml');
}
return $format;
* @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
}
}
- // no matching header defaults to json
- return 'json';
+ // no matching header return default
+ return $default;
}
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\OCSResponse;
+use OCP\AppFramework\Http\Response;
use OCP\IRequest;
});
}
+ /**
+ * 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