From 2107a6f8e62945aac87716e54621cbef9a27c324 Mon Sep 17 00:00:00 2001 From: Benedikt Ziemons Date: Sun, 10 Oct 2021 19:49:36 +0200 Subject: [PATCH] Add helper name attribute in matrix room state --- lib/Controller/TicketApiController.php | 6 ++--- lib/Service/TicketService.php | 27 +++++++++++++------ .../Unit/Controller/NoteApiControllerTest.php | 4 +-- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/Controller/TicketApiController.php b/lib/Controller/TicketApiController.php index cd175d5..0f58359 100644 --- a/lib/Controller/TicketApiController.php +++ b/lib/Controller/TicketApiController.php @@ -51,14 +51,12 @@ class TicketApiController extends ApiController return new DataResponse($this->service->create($title, $content, $this->userId)); } - - /** * @NoAdminRequired */ - public function update(): DataResponse + public function update(int $id): DataResponse { - return new DataResponse($this->service->assign(44,$this->userId)); + return new DataResponse($this->service->assign($id, $this->userId)); } public function destroy(int $id): DataResponse diff --git a/lib/Service/TicketService.php b/lib/Service/TicketService.php index b93f73a..c241084 100644 --- a/lib/Service/TicketService.php +++ b/lib/Service/TicketService.php @@ -14,9 +14,13 @@ use OCA\UPschooling\Exceptions\RoomNotFoundException; use OCA\UPschooling\Exceptions\TicketNotFoundException; use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Db\MultipleObjectsReturnedException; +use OCP\IUserManager; class TicketService { + /** @var IUserManager $userManager */ + private $userManager; + /** @var MatrixService */ private $matrix; @@ -26,7 +30,13 @@ class TicketService { /** @var UserMapper */ private $userMapper; - public function __construct(MatrixService $matrix, TicketMapper $ticketMapper, UserMapper $userMapper) { + public function __construct( + IUserManager $userManager, + MatrixService $matrix, + TicketMapper $ticketMapper, + UserMapper $userMapper + ) { + $this->userManager = $userManager; $this->matrix = $matrix; $this->ticketMapper = $ticketMapper; $this->userMapper = $userMapper; @@ -72,14 +82,14 @@ class TicketService { return $this->resolveTicket($this->ticketMapper->insert($ticket)); } - - public function assign($id, $userId): array{ $matrixUser = $this->getOrCreateUser($userId); $ticket = $this->ticketMapper->findTicket($id); - $roomID= $ticket->getMatrixRoom(); + $roomID = $ticket->getMatrixRoom(); + $helperName = $this->userManager->get($userId)->getDisplayName(); $this->matrix->setProperty($roomID, "upschooling.ticket", array( - "matrixHelperUser" => $matrixUser->getMatrixUser() + "matrixHelperUser" => $matrixUser->getMatrixUser(), + "matrixHelperName" => $helperName, )); $ticket->setMatrixHelperUser($matrixUser->getMatrixUser()); return $this->resolveTicket($this->ticketMapper->update($ticket)); @@ -107,15 +117,16 @@ class TicketService { $description = array_get($matrixTicketContent, "description", ""); $lastModified = $this->matrix->getLastEventDate($ticket->getMatrixRoom()); $matrixHelperUser = array_get($matrixTicketContent, "matrixHelperUser", "nicht zugewiesen"); - $expirationDate = array_get($matrixTicketContent, "expiration date", ""); + $matrixHelperName = array_get($matrixTicketContent, "matrixHelperName", $matrixHelperUser); + $expirationDate = array_get($matrixTicketContent, "expirationDate", ""); return array( 'ticketId' => $ticketId, 'status' => $ticket->getStatus(), 'lastModified' => $lastModified, 'title' => $title, 'description' => $description, - 'matrixHelperUser' => $matrixHelperUser, - 'expirationDate' => $expirationDate + 'matrixHelperName' => $matrixHelperName, + 'expirationDate' => $expirationDate ); } catch (MatrixException | RoomNotFoundException $e) { return array( diff --git a/tests/Unit/Controller/NoteApiControllerTest.php b/tests/Unit/Controller/NoteApiControllerTest.php index 3378322..3f9bb30 100644 --- a/tests/Unit/Controller/NoteApiControllerTest.php +++ b/tests/Unit/Controller/NoteApiControllerTest.php @@ -36,7 +36,7 @@ class NoteApiControllerTest extends TestCase $this->equalTo($this->userId)) ->will($this->returnValue($note)); - $result = $this->controller->update(3, 'title', 'content'); + $result = $this->controller->update(3); $this->assertEquals($note, $result->getData()); } @@ -49,7 +49,7 @@ class NoteApiControllerTest extends TestCase ->method('update') ->will($this->throwException(new NoteNotFound())); - $result = $this->controller->update(3, 'title', 'content'); + $result = $this->controller->update(3); $this->assertEquals(Http::STATUS_NOT_FOUND, $result->getStatus()); }