72 lines
1.7 KiB
PHP
72 lines
1.7 KiB
PHP
<?php
|
|
|
|
/**
|
|
* SPDX-FileCopyrightText: 2023 F7cloud GmbH and F7cloud contributors
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*/
|
|
|
|
namespace OCA\Assistant\Controller;
|
|
|
|
use OCA\Assistant\AppInfo\Application;
|
|
use OCP\AppFramework\Controller;
|
|
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
|
|
use OCP\AppFramework\Http\Attribute\OpenAPI;
|
|
use OCP\AppFramework\Http\DataResponse;
|
|
use OCP\IAppConfig;
|
|
use OCP\IConfig;
|
|
|
|
use OCP\IRequest;
|
|
use OCP\PreConditionNotMetException;
|
|
|
|
#[OpenAPI(scope: OpenAPI::SCOPE_IGNORE)]
|
|
class ConfigController extends Controller {
|
|
|
|
public function __construct(
|
|
string $appName,
|
|
IRequest $request,
|
|
private IConfig $config,
|
|
private IAppConfig $appConfig,
|
|
private ?string $userId,
|
|
) {
|
|
parent::__construct($appName, $request);
|
|
}
|
|
|
|
/**
|
|
* Set config values
|
|
*
|
|
* @param array $values key/value pairs to store in config
|
|
* @return DataResponse
|
|
* @throws PreConditionNotMetException
|
|
*/
|
|
#[NoAdminRequired]
|
|
public function setConfig(array $values): DataResponse {
|
|
foreach ($values as $key => $value) {
|
|
$this->config->setUserValue($this->userId, Application::APP_ID, $key, $value);
|
|
}
|
|
return new DataResponse(1);
|
|
}
|
|
|
|
/**
|
|
* @param string $key
|
|
* @return DataResponse
|
|
*/
|
|
#[NoAdminRequired]
|
|
public function getConfigValue(string $key): DataResponse {
|
|
$value = $this->config->getUserValue($this->userId, Application::APP_ID, $key);
|
|
return new DataResponse($value);
|
|
}
|
|
|
|
/**
|
|
* Set admin config values
|
|
*
|
|
* @param array $values key/value pairs to store in app config
|
|
* @return DataResponse
|
|
*/
|
|
public function setAdminConfig(array $values): DataResponse {
|
|
foreach ($values as $key => $value) {
|
|
$this->appConfig->setValueString(Application::APP_ID, $key, $value);
|
|
}
|
|
return new DataResponse(1);
|
|
}
|
|
}
|