-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathAdminController.php
More file actions
43 lines (35 loc) · 1.24 KB
/
AdminController.php
File metadata and controls
43 lines (35 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Files_DownloadLimit\Controller;
use OCA\Files_DownloadLimit\AppInfo\Application;
use OCP\AppFramework\Http\Attribute\ApiRoute;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSBadRequestException;
use OCP\AppFramework\OCSController;
use OCP\IAppConfig;
use OCP\IRequest;
class AdminController extends OCSController {
public function __construct(
IRequest $request,
private IAppConfig $appConfig,
) {
parent::__construct(Application::APP_ID, $request);
}
#[ApiRoute(verb: 'PUT', url: '/api/v{version}/limit', requirements: ['version' => 1])]
public function setDefaultLimit(int $limit): DataResponse {
if ($limit < 1) {
throw new OCSBadRequestException('Minimum limit is 1');
}
$this->appConfig->setValueInt(Application::APP_ID, 'default-download-limit', $limit);
return new DataResponse();
}
#[ApiRoute(verb: 'DELETE', url: '/api/v{version}/limit', requirements: ['version' => 1])]
public function removeDefaultLimit(): DataResponse {
$this->appConfig->deleteKey(Application::APP_ID, 'default-download-limit');
return new DataResponse();
}
}