From e3dd04a29ccb202fe1aac111ef8a2633bf0f086b Mon Sep 17 00:00:00 2001 From: Jonas Rittershofer Date: Tue, 2 Mar 2021 23:35:05 +0100 Subject: [PATCH] Use new RichObject on Activity Signed-off-by: Jonas Rittershofer --- lib/Activity/Provider.php | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/lib/Activity/Provider.php b/lib/Activity/Provider.php index 8e51d3dda..6cf4dd24b 100644 --- a/lib/Activity/Provider.php +++ b/lib/Activity/Provider.php @@ -35,6 +35,8 @@ use OCP\ILogger; use OCP\IURLGenerator; use OCP\IUserManager; +use OCP\RichObjectStrings\InvalidObjectExeption; +use OCP\RichObjectStrings\IValidator; class Provider implements IProvider { private $appName; @@ -60,6 +62,9 @@ class Provider implements IProvider { /** @var IUserManager */ private $userManager; + /** @var IValidator */ + private $validator; + public function __construct(string $appName, FormMapper $formMapper, IEventMerger $eventMerger, @@ -67,7 +72,8 @@ public function __construct(string $appName, IL10N $l10n, ILogger $logger, IURLGenerator $urlGenerator, - IUserManager $userManager) { + IUserManager $userManager, + IValidator $validator) { $this->appName = $appName; $this->formMapper = $formMapper; $this->eventMerger = $eventMerger; @@ -76,6 +82,7 @@ public function __construct(string $appName, $this->logger = $logger; $this->urlGenerator = $urlGenerator; $this->userManager = $userManager; + $this->validator = $validator; } /** @@ -246,7 +253,7 @@ private function getRichFormTitle(string $formTitle, string $formHash, string $r $formTitle = $this->formMapper->findbyHash($formHash)->getTitle(); // Append hash and route - $formLink .= $formHash; + $formLink .= '/' . $formHash; if ($route !== '') { $formLink .= '/' . $route; } @@ -254,12 +261,23 @@ private function getRichFormTitle(string $formTitle, string $formHash, string $r // Ignore if not found, just use stored title } - return [ - 'type' => 'highlight', + $richFormTitle = [ + 'type' => 'forms-form', 'id' => $formHash, 'name' => $formTitle, 'link' => $formLink ]; + + // TODO Remove validation as soon as NC21 is out of support. + try { + // Validating a dummy-subject, which uses the richFormTitle. + $this->validator->validate('{form}', ['form' => $richFormTitle]); + } catch (InvalidObjectExeption $e) { + // In case this did not work (type does not exist for