GetTasksUseCase.php
- Pfad:
src/UseCases/Task/GetTasksUseCase.php - Namespace: UseCases\Task
- Zeilen: 68 | Größe: 1,874 Bytes
- Geändert: 2025-12-23 08:49:25 | Gescannt: 2025-12-31 10:22:15
Code Hygiene Score: 100
- Dependencies: 100 (25%)
- LOC: 100 (20%)
- Methods: 100 (20%)
- Secrets: 100 (15%)
- Classes: 100 (10%)
- Magic Numbers: 100 (10%)
Keine Issues gefunden.
Dependencies 7
- constructor Domain\Repository\TaskRepositoryInterface
- constructor Infrastructure\Persistence\TaskAssignmentRepository
- constructor Infrastructure\Persistence\TaskResultRepository
- use Domain\Entity\Task
- use Domain\Repository\TaskRepositoryInterface
- use Infrastructure\Persistence\TaskAssignmentRepository
- use Infrastructure\Persistence\TaskResultRepository
Klassen 1
-
GetTasksUseCaseclass Zeile 14
Funktionen 7
-
__construct()public Zeile 16 -
execute()public Zeile 23 -
findById()public Zeile 28 -
findByUuid()public Zeile 33 -
getTaskWithDetails()public Zeile 38 -
getStatistics()public Zeile 58 -
count()public Zeile 63
Verwendet von 2
- TaskController.php constructor
- TaskController.php use
Versionen 2
-
v2
2025-12-23 08:15 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation -
v1
2025-12-23 07:54 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
Code
<?php
declare(strict_types=1);
namespace UseCases\Task;
// @responsibility: Liest Tasks mit Filtern, Details und Statistiken
use Domain\Entity\Task;
use Domain\Repository\TaskRepositoryInterface;
use Infrastructure\Persistence\TaskAssignmentRepository;
use Infrastructure\Persistence\TaskResultRepository;
class GetTasksUseCase
{
public function __construct(
private TaskRepositoryInterface $taskRepository,
private TaskAssignmentRepository $assignmentRepository,
private TaskResultRepository $resultRepository
) {
}
public function execute(array $filters = [], int $limit = 50, int $offset = 0): array
{
return $this->taskRepository->findAll($filters, $limit, $offset);
}
public function findById(int $id): ?Task
{
return $this->taskRepository->find($id);
}
public function findByUuid(string $uuid): ?Task
{
return $this->taskRepository->findByUuid($uuid);
}
public function getTaskWithDetails(int $id): ?array
{
$task = $this->taskRepository->find($id);
if ($task === null) {
return null;
}
$assignments = $this->assignmentRepository->findByTaskId($id);
$results = $this->resultRepository->findByTaskId($id);
$subtasks = $this->taskRepository->findSubtasks($id);
return [
'task' => $task->toArray(),
'assignments' => array_map(fn ($a) => $a->toArray(), $assignments),
'results' => array_map(fn ($r) => $r->toArray(), $results),
'subtasks' => array_map(fn ($t) => $t->toArray(), $subtasks),
];
}
public function getStatistics(): array
{
return $this->taskRepository->getStatistics();
}
public function count(array $filters = []): int
{
return $this->taskRepository->count($filters);
}
}