diff options
author | Côme Chilliet <come.chilliet@nextcloud.com> | 2024-09-17 13:57:33 +0200 |
---|---|---|
committer | Côme Chilliet <come.chilliet@nextcloud.com> | 2024-09-17 13:57:33 +0200 |
commit | 70a886ce831322ce4f50f7d06f43beb670239fbe (patch) | |
tree | 62cb3276302c83e0ced11d1596c9eb736828ffb9 /core | |
parent | f8dde2d254ded9760cfa7a24178e1f1ca141ba41 (diff) | |
download | nextcloud-server-70a886ce831322ce4f50f7d06f43beb670239fbe.tar.gz nextcloud-server-70a886ce831322ce4f50f7d06f43beb670239fbe.zip |
feat: Add OCP interface to format richtext into string
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Diffstat (limited to 'core')
-rw-r--r-- | core/Command/SetupChecks.php | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/core/Command/SetupChecks.php b/core/Command/SetupChecks.php index 1140792f527..fda463b8f6d 100644 --- a/core/Command/SetupChecks.php +++ b/core/Command/SetupChecks.php @@ -9,6 +9,7 @@ declare(strict_types=1); namespace OC\Core\Command; +use OCP\RichObjectStrings\IRichTextFormatter; use OCP\SetupCheck\ISetupCheckManager; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; @@ -16,6 +17,7 @@ use Symfony\Component\Console\Output\OutputInterface; class SetupChecks extends Base { public function __construct( private ISetupCheckManager $setupCheckManager, + private IRichTextFormatter $richTextFormatter, ) { parent::__construct(); } @@ -29,29 +31,6 @@ class SetupChecks extends Base { ; } - /** - * @TODO move this method to a common service used by notifications, activity and this command - * @throws \InvalidArgumentException if a parameter has no name or no type - */ - private function richToParsed(string $message, array $parameters): string { - $placeholders = []; - $replacements = []; - foreach ($parameters as $placeholder => $parameter) { - $placeholders[] = '{' . $placeholder . '}'; - foreach (['name','type'] as $requiredField) { - if (!isset($parameter[$requiredField]) || !is_string($parameter[$requiredField])) { - throw new \InvalidArgumentException("Invalid rich object, {$requiredField} field is missing"); - } - } - $replacements[] = match($parameter['type']) { - 'user' => '@' . $parameter['name'], - 'file' => $parameter['path'] ?? $parameter['name'], - default => $parameter['name'], - }; - } - return str_replace($placeholders, $replacements, $message); - } - protected function execute(InputInterface $input, OutputInterface $output): int { $results = $this->setupCheckManager->runAll(); switch ($input->getOption('output')) { @@ -79,7 +58,7 @@ class SetupChecks extends Base { $description = $check->getDescription(); $descriptionParameters = $check->getDescriptionParameters(); if ($description !== null && $descriptionParameters !== null) { - $description = $this->richToParsed($description, $descriptionParameters); + $description = $this->richTextFormatter->richToParsed($description, $descriptionParameters); } $output->writeln( "\t\t". |