aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorCôme Chilliet <come.chilliet@nextcloud.com>2024-09-17 13:57:33 +0200
committerCôme Chilliet <come.chilliet@nextcloud.com>2024-09-17 13:57:33 +0200
commit70a886ce831322ce4f50f7d06f43beb670239fbe (patch)
tree62cb3276302c83e0ced11d1596c9eb736828ffb9 /core
parentf8dde2d254ded9760cfa7a24178e1f1ca141ba41 (diff)
downloadnextcloud-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.php27
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".