%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/apps/logreader/lib/Service/ |
| Current File : //www/varak.net/nextcloud.varak.net/apps/logreader/lib/Service/SettingsService.php |
<?php
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\LogReader\Service;
use OCA\LogReader\Constants;
use OCP\IConfig;
class SettingsService {
public function __construct(
private IConfig $config,
) {
$this->config = $config;
}
/**
* Load shown levels from app config
*/
public function getShownLevels(): array {
return json_decode($this->config->getAppValue('logreader', Constants::CONFIG_KEY_SHOWNLEVELS, '[0,1,2,3,4]'), flags: JSON_THROW_ON_ERROR);
}
/**
* Load date time format to use for user from app config
*/
public function getDateTimeFormat(): string {
return json_decode($this->config->getAppValue('logreader', Constants::CONFIG_KEY_DATETIMEFORMAT, '"local"'), flags: JSON_THROW_ON_ERROR);
}
/**
* Load app config if dates should be displayed as relative dates
*/
public function getRelativeDates(): bool {
return json_decode($this->config->getAppValue('logreader', Constants::CONFIG_KEY_RELATIVEDATES, 'false') ?: 'false', flags: JSON_THROW_ON_ERROR);
}
/**
* Load app config if log should be updated automatically
*/
public function getLiveLog(): bool {
return json_decode($this->config->getAppValue('logreader', Constants::CONFIG_KEY_LIVELOG, 'true'), flags: JSON_THROW_ON_ERROR);
}
/**
* Get all app settings for displaying the logfiles
*/
public function getAppSettings(): array {
return [
Constants::CONFIG_KEY_SHOWNLEVELS => $this->getShownLevels(),
Constants::CONFIG_KEY_LOGLEVEL => $this->config->getSystemValueInt('loglevel', 2),
Constants::CONFIG_KEY_DATETIMEFORMAT => $this->getDateTimeFormat(),
Constants::CONFIG_KEY_RELATIVEDATES => $this->getRelativeDates(),
Constants::CONFIG_KEY_LIVELOG => $this->getLiveLog(),
'enabled' => $this->getLoggingType() === 'file',
];
}
/**
* Get system setting of the logging type
*/
public function getLoggingType(): string {
return $this->config->getSystemValueString('log_type', 'file');
}
/**
* Get system setting of the log file name
*/
public function getLoggingFile(): string {
return $this->config->getSystemValueString('logile', '');
}
/**
* Get system setting for the log date format
*/
public function getLoggingDateFormat(): string {
// see default: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/logging_configuration.html#file
return $this->config->getSystemValueString('logdateformat', 'c');
}
/**
* Get system setting for the log timezone
*/
public function getLoggingTimezone(): string {
return $this->config->getSystemValueString('logtimezone', 'UTC');
}
}