use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\JSONResponse;
-use OCP\AppFramework\Http\DataDownloadResponse;
+use OCP\AppFramework\Http\StreamResponse;
use OCP\IL10N;
-use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IRequest;
use OCP\IConfig;
*/
private $l10n;
- /**
- * @var \OCP\ITimeFactory
- */
- private $timefactory;
-
/**
* @param string $appName
* @param IRequest $request
public function __construct($appName,
IRequest $request,
IConfig $config,
- IL10N $l10n,
- ITimeFactory $timeFactory) {
-
+ IL10N $l10n) {
parent::__construct($appName, $request);
$this->config = $config;
$this->l10n = $l10n;
- $this->timefactory = $timeFactory;
}
/**
*
* @NoCSRFRequired
*
- * @return DataDownloadResponse
+ * @return StreamResponse
*/
public function download() {
- return new DataDownloadResponse(
- json_encode(\OC_Log_Owncloud::getEntries(null, null)),
- $this->getFilenameForDownload(),
- 'application/json'
- );
- }
-
- /**
- * get filename for the logfile that's being downloaded
- *
- * @param int $timestamp (defaults to time())
- * @return string
- */
- private function getFilenameForDownload($timestamp=null) {
- $instanceId = $this->config->getSystemValue('instanceid');
-
- $filename = implode([
- 'ownCloud',
- $instanceId,
- (!is_null($timestamp)) ? $timestamp : $this->timefactory->getTime()
- ], '-');
- $filename .= '.log';
-
- return $filename;
+ $resp = new StreamResponse(\OC_Log_Owncloud::getLogFilePath());
+ $resp->addHeader('Content-Disposition', 'attachment; filename="owncloud.log"');
+ return $resp;
}
}
];
}
- public function testGetFilenameForDownload() {
- $timestamp = 42;
- $this->container['Config']
- ->expects($this->once())
- ->method('getSystemValue')
- ->with('instanceid')
- ->will($this->returnValue('0xF'));
- $filename = \Test_Helper::invokePrivate($this->logSettingsController, 'getFilenameForDownload', [$timestamp]);
+ public function testDownload() {
+ $response = $this->logSettingsController->download();
- $this->assertSame('ownCloud-0xF-42.log', $filename);
+ $this->assertInstanceOf('\OCP\AppFramework\Http\StreamResponse', $response);
}
}