aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorJana Peper <jana.peper@nextcloud.com>2024-12-11 18:18:54 +0100
committerjanepie <49834966+janepie@users.noreply.github.com>2024-12-18 18:32:34 +0100
commita7f26cf966625670c4ed5eaab8c89cac7c7ab943 (patch)
tree1d19d0f59061cf8dd03c81b7d4d0c449bd3beffd /core
parent129af480acf167cc02d806445d5b871ee590f9e1 (diff)
downloadnextcloud-server-a7f26cf966625670c4ed5eaab8c89cac7c7ab943.tar.gz
nextcloud-server-a7f26cf966625670c4ed5eaab8c89cac7c7ab943.zip
feat: add occ command for task type toggling
Signed-off-by: Jana Peper <jana.peper@nextcloud.com>
Diffstat (limited to 'core')
-rw-r--r--core/Command/TaskProcessing/EnabledCommand.php60
-rw-r--r--core/register_command.php1
2 files changed, 61 insertions, 0 deletions
diff --git a/core/Command/TaskProcessing/EnabledCommand.php b/core/Command/TaskProcessing/EnabledCommand.php
new file mode 100644
index 00000000000..c25251d61c4
--- /dev/null
+++ b/core/Command/TaskProcessing/EnabledCommand.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OC\Core\Command\TaskProcessing;
+
+use OC\Core\Command\Base;
+use OCP\IConfig;
+use OCP\TaskProcessing\IManager;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class EnabledCommand extends Base {
+ public function __construct(
+ protected IManager $taskProcessingManager,
+ private IConfig $config,
+ ) {
+ parent::__construct();
+ }
+
+ protected function configure() {
+ $this
+ ->setName('taskprocessing:task:set-enabled')
+ ->setDescription('Enable or disable a task type')
+ ->addArgument(
+ 'task-type-id',
+ InputArgument::REQUIRED,
+ 'ID of the task type to configure'
+ )
+ ->addArgument(
+ 'enabled',
+ InputArgument::REQUIRED,
+ 'status of the task type availability. Set 1 to enable and 0 to disable.'
+ );
+ parent::configure();
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output): int {
+ $enabled = (bool)$input->getArgument('enabled');
+ $taskType = $input->getArgument('task-type-id');
+ $json = $this->config->getAppValue('core', 'ai.taskprocessing_type_preferences');
+ if ($json === '') {
+ $taskTypeSettings = [];
+ } else {
+ $taskTypeSettings = json_decode($json, true);
+ }
+ if ($enabled) {
+ $taskTypeSettings[$taskType] = true;
+ } else {
+ $taskTypeSettings[$taskType] = false;
+ }
+
+
+ $this->config->setAppValue('core', 'ai.taskprocessing_type_preferences', json_encode($taskTypeSettings));
+ $this->writeArrayInOutputFormat($input, $output, $taskTypeSettings);
+ return 0;
+ }
+}
diff --git a/core/register_command.php b/core/register_command.php
index 08a01d7ff6e..62305d75a30 100644
--- a/core/register_command.php
+++ b/core/register_command.php
@@ -147,6 +147,7 @@ if ($config->getSystemValueBool('installed', false)) {
$application->add(Server::get(Command\FilesMetadata\Get::class));
$application->add(Server::get(Command\TaskProcessing\GetCommand::class));
+ $application->add(Server::get(Command\TaskProcessing\EnabledCommand::class));
$application->add(Server::get(Command\TaskProcessing\ListCommand::class));
$application->add(Server::get(Command\TaskProcessing\Statistics::class));