Code Duplication    Length = 22-23 lines in 3 locations

lib/Service/CardService.php 3 locations

@@ 213-234 (lines=22) @@
210
	 * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
211
	 * @throws BadRequestException
212
	 */
213
	public function delete($id) {
214
215
		if (is_numeric($id) === false) {
216
			throw new BadRequestException('card id must be a number');
217
		}
218
219
		$this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT);
220
		if ($this->boardService->isArchived($this->cardMapper, $id)) {
221
			throw new StatusException('Operation not allowed. This board is archived.');
222
		}
223
		$card = $this->cardMapper->find($id);
224
		$card->setDeletedAt(time());
225
		$this->cardMapper->update($card);
226
		$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $card, ActivityManager::SUBJECT_CARD_DELETE);
227
		$this->changeHelper->cardChanged($card->getId(), false);
228
229
		$this->eventDispatcher->dispatch(
230
			'\OCA\Deck\Card::onDelete', new GenericEvent(null, ['id' => $id, 'card' => $card])
231
		);
232
233
		return $card;
234
	}
235
236
	/**
237
	 * @param $id
@@ 435-457 (lines=23) @@
432
	 * @throws \OCP\AppFramework\Db\
433
	 * @throws BadRequestException
434
	 */
435
	public function archive($id) {
436
437
		if (is_numeric($id) === false) {
438
			throw new BadRequestException('id must be a number');
439
		}
440
441
		$this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT);
442
		if ($this->boardService->isArchived($this->cardMapper, $id)) {
443
			throw new StatusException('Operation not allowed. This board is archived.');
444
		}
445
		$card = $this->cardMapper->find($id);
446
		$card->setArchived(true);
447
		$newCard = $this->cardMapper->update($card);
448
		$this->notificationHelper->markDuedateAsRead($card);
449
		$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $newCard, ActivityManager::SUBJECT_CARD_UPDATE_ARCHIVE);
450
		$this->changeHelper->cardChanged($id, false);
451
452
		$this->eventDispatcher->dispatch(
453
			'\OCA\Deck\Card::onUpdate', new GenericEvent(null, ['id' => $id, 'card' => $card])
454
		);
455
456
		return $newCard;
457
	}
458
459
	/**
460
	 * @param $id
@@ 468-489 (lines=22) @@
465
	 * @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
466
	 * @throws BadRequestException
467
	 */
468
	public function unarchive($id) {
469
470
		if (is_numeric($id) === false) {
471
			throw new BadRequestException('id must be a number');
472
		}
473
474
		$this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT);
475
		if ($this->boardService->isArchived($this->cardMapper, $id)) {
476
			throw new StatusException('Operation not allowed. This board is archived.');
477
		}
478
		$card = $this->cardMapper->find($id);
479
		$card->setArchived(false);
480
		$newCard = $this->cardMapper->update($card);
481
		$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $newCard, ActivityManager::SUBJECT_CARD_UPDATE_UNARCHIVE);
482
		$this->changeHelper->cardChanged($id, false);
483
484
		$this->eventDispatcher->dispatch(
485
			'\OCA\Deck\Card::onUpdate', new GenericEvent(null, ['id' => $id, 'card' => $card])
486
		);
487
488
		return $newCard;
489
	}
490
491
	/**
492
	 * @param $cardId