fix: Centralize usage of CardDetails

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2023-02-27 23:45:33 +01:00
parent c1a16c9e85
commit 0b2ea0f839
5 changed files with 20 additions and 14 deletions

View File

@@ -39,6 +39,7 @@ use OCA\Deck\Db\StackMapper;
use OCA\Deck\Event\CardCreatedEvent; use OCA\Deck\Event\CardCreatedEvent;
use OCA\Deck\Event\CardDeletedEvent; use OCA\Deck\Event\CardDeletedEvent;
use OCA\Deck\Event\CardUpdatedEvent; use OCA\Deck\Event\CardUpdatedEvent;
use OCA\Deck\Model\CardDetails;
use OCA\Deck\NoPermissionException; use OCA\Deck\NoPermissionException;
use OCA\Deck\Notification\NotificationHelper; use OCA\Deck\Notification\NotificationHelper;
use OCA\Deck\Db\BoardMapper; use OCA\Deck\Db\BoardMapper;
@@ -155,7 +156,12 @@ class CardService {
$card->setAssignedUsers($cardAssignedUsers); $card->setAssignedUsers($cardAssignedUsers);
} }
return $cards; return array_map(
function (Card $card): CardDetails {
return new CardDetails($card);
},
$cards
);
} }
public function fetchDeleted($boardId) { public function fetchDeleted($boardId) {
$this->cardServiceValidator->check(compact('boardId')); $this->cardServiceValidator->check(compact('boardId'));

View File

@@ -99,15 +99,7 @@ class StackService {
return; return;
} }
$this->cardService->enrichCards($cards); $stack->setCards($this->cardService->enrichCards($cards));
$cards = array_map(
function (Card $card): CardDetails {
return new CardDetails($card);
},
$cards
);
$stack->setCards($cards);
} }
private function enrichStacksWithCards($stacks, $since = -1) { private function enrichStacksWithCards($stacks, $since = -1) {

View File

@@ -34,6 +34,7 @@ use OCA\Deck\Db\Stack;
use OCA\Deck\Db\StackMapper; use OCA\Deck\Db\StackMapper;
use OCA\Deck\Db\BoardMapper; use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\LabelMapper; use OCA\Deck\Db\LabelMapper;
use OCA\Deck\Model\CardDetails;
use OCA\Deck\Notification\NotificationHelper; use OCA\Deck\Notification\NotificationHelper;
use OCA\Deck\StatusException; use OCA\Deck\StatusException;
use OCA\Deck\Validators\CardServiceValidator; use OCA\Deck\Validators\CardServiceValidator;
@@ -188,7 +189,10 @@ class CardServiceTest extends TestCase {
$cardExpected->setRelatedBoard($boardMock); $cardExpected->setRelatedBoard($boardMock);
$cardExpected->setRelatedStack($stackMock); $cardExpected->setRelatedStack($stackMock);
$cardExpected->setLabels([]); $cardExpected->setLabels([]);
$this->assertEquals($cardExpected, $this->cardService->find(123)); $expected = new CardDetails($cardExpected);
$actual = $this->cardService->find(123);
$this->assertEquals($expected->jsonSerialize(), $actual->jsonSerialize());
} }
public function testCreate() { public function testCreate() {

View File

@@ -76,7 +76,7 @@ class TrelloJsonServiceTest extends \Test\TestCase {
} }
public function testValidateUsersWithNotStringNextcloud() { public function testValidateUsersWithNotStringNextcloud() {
$this->expectErrorMessage('User on setting uidRelation is invalid'); $this->expectExceptionMessage('User on setting uidRelation is invalid');
$importService = $this->createMock(BoardImportService::class); $importService = $this->createMock(BoardImportService::class);
$importService $importService
->method('getConfig') ->method('getConfig')
@@ -92,7 +92,7 @@ class TrelloJsonServiceTest extends \Test\TestCase {
} }
public function testValidateUsersWithNotFoundUser() { public function testValidateUsersWithNotFoundUser() {
$this->expectErrorMessage('User on setting uidRelation not found: nextcloud_user'); $this->expectExceptionMessage('User on setting uidRelation not found: nextcloud_user');
$importService = $this->createMock(BoardImportService::class); $importService = $this->createMock(BoardImportService::class);
$importService $importService
->method('getConfig') ->method('getConfig')
@@ -124,7 +124,7 @@ class TrelloJsonServiceTest extends \Test\TestCase {
} }
public function testGetBoardWithNoName() { public function testGetBoardWithNoName() {
$this->expectErrorMessage('Invalid name of board'); $this->expectExceptionMessage('Invalid name of board');
$importService = $this->createMock(BoardImportService::class); $importService = $this->createMock(BoardImportService::class);
$this->service->setImportService($importService); $this->service->setImportService($importService);
$this->service->getBoard(); $this->service->getBoard();

View File

@@ -33,6 +33,7 @@ use OCA\Deck\Db\Label;
use OCA\Deck\Db\LabelMapper; use OCA\Deck\Db\LabelMapper;
use OCA\Deck\Db\Stack; use OCA\Deck\Db\Stack;
use OCA\Deck\Db\StackMapper; use OCA\Deck\Db\StackMapper;
use OCA\Deck\Model\CardDetails;
use OCA\Deck\Validators\StackServiceValidator; use OCA\Deck\Validators\StackServiceValidator;
use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventDispatcher;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
@@ -121,6 +122,9 @@ class StackServiceTest extends TestCase {
foreach ($cards as $card) { foreach ($cards as $card) {
$card->setLabels($this->getLabels()[$card->getId()]); $card->setLabels($this->getLabels()[$card->getId()]);
} }
return array_map(function ($card) {
return new CardDetails($card);
}, $cards);
} }
) )
); );