Validate get boad change pattern of api params Import only one board by api Populate data from api Update class diagram Update documentation Add return when success Sort comments Fix order of cards Instructions of attachments Signed-off-by: Vitor Mattos <vitor@php.rio>
135 lines
3.4 KiB
PHP
135 lines
3.4 KiB
PHP
<?php
|
|
/**
|
|
* @copyright Copyright (c) 2021 Vitor Mattos <vitor@php.rio>
|
|
*
|
|
* @author Vitor Mattos <vitor@php.rio>
|
|
*
|
|
* @license GNU AGPL version 3 or any later version
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
|
|
namespace OCA\Deck\Service;
|
|
|
|
use OCA\Deck\Db\Acl;
|
|
use OCA\Deck\Db\Assignment;
|
|
use OCA\Deck\Db\Board;
|
|
use OCA\Deck\Db\Card;
|
|
use OCA\Deck\Db\Label;
|
|
use OCA\Deck\Db\Stack;
|
|
use OCP\AppFramework\Db\Entity;
|
|
use OCP\Comments\IComment;
|
|
|
|
abstract class ABoardImportService {
|
|
/** @var string */
|
|
public static $name = '';
|
|
/** @var BoardImportService */
|
|
private $boardImportService;
|
|
/** @var bool */
|
|
protected $needValidateData = true;
|
|
/** @var Stack[] */
|
|
protected $stacks = [];
|
|
/** @var Label[] */
|
|
protected $labels = [];
|
|
/** @var Card[] */
|
|
protected $cards = [];
|
|
/** @var Acl[] */
|
|
protected $acls = [];
|
|
/** @var IComment[][] */
|
|
protected $comments = [];
|
|
/** @var Assignment[] */
|
|
protected $assignments = [];
|
|
/** @var string[][] */
|
|
protected $labelCardAssignments = [];
|
|
|
|
/**
|
|
* Configure import service
|
|
*
|
|
* @return void
|
|
*/
|
|
abstract public function bootstrap(): void;
|
|
|
|
abstract public function getBoard(): ?Board;
|
|
|
|
/**
|
|
* @return Acl[]
|
|
*/
|
|
abstract public function getAclList(): array;
|
|
|
|
/**
|
|
* @return Stack[]
|
|
*/
|
|
abstract public function getStacks(): array;
|
|
|
|
/**
|
|
* @return Card[]
|
|
*/
|
|
abstract public function getCards(): array;
|
|
|
|
abstract public function getCardAssignments(): array;
|
|
|
|
abstract public function getCardLabelAssignment(): array;
|
|
|
|
/**
|
|
* @return IComment[][]|array
|
|
*/
|
|
abstract public function getComments(): array;
|
|
|
|
/** @return Label[] */
|
|
abstract public function getLabels(): array;
|
|
|
|
abstract public function validateUsers(): void;
|
|
|
|
public function updateStack(string $id, Stack $stack): void {
|
|
$this->stacks[$id] = $stack;
|
|
}
|
|
|
|
public function updateCard(string $id, Card $card): void {
|
|
$this->cards[$id] = $card;
|
|
}
|
|
|
|
public function updateLabel(string $code, Label $label): void {
|
|
$this->labels[$code] = $label;
|
|
}
|
|
|
|
public function updateAcl(string $code, Acl $acl): void {
|
|
$this->acls[$code] = $acl;
|
|
}
|
|
|
|
public function updateComment(string $cardId, string $commentId, IComment $comment): void {
|
|
$this->comments[$cardId][$commentId] = $comment;
|
|
}
|
|
|
|
public function updateCardAssignment(string $cardId, string $assignmentId, Entity $assignment): void {
|
|
$this->assignments[$cardId][$assignmentId] = $assignment;
|
|
}
|
|
|
|
public function updateCardLabelsAssignment(string $cardId, string $assignmentId, string $assignment): void {
|
|
$this->labelCardAssignments[$cardId][$assignmentId] = $assignment;
|
|
}
|
|
|
|
public function setImportService(BoardImportService $service): void {
|
|
$this->boardImportService = $service;
|
|
}
|
|
|
|
public function getImportService(): BoardImportService {
|
|
return $this->boardImportService;
|
|
}
|
|
|
|
public function needValidateData(): bool {
|
|
return $this->needValidateData;
|
|
}
|
|
}
|