f7cloud_client/apps/assistant/lib/Controller/ConfigController.php
root 8b6a0139db f7cloud_client
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:59:26 +00:00

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);
}
}