current init

This commit is contained in:
Marek
2026-03-30 15:42:44 +02:00
parent c5229e48ed
commit 2f96caaa23
366 changed files with 6093 additions and 11029 deletions

View File

@@ -0,0 +1,47 @@
<?php
namespace App\Service;
use App\DTO\Request\UpdateTaskRequest;
use App\DTO\Response\TaskResponse;
use App\Entity\Task;
use App\Enum\TaskStatus;
use App\Repository\CategoryRepository;
use Doctrine\ORM\EntityManagerInterface;
class TaskManager
{
public function __construct(
private EntityManagerInterface $em,
private CategoryRepository $categoryRepository,
private TaskSerializer $taskSerializer,
) {}
public function updateTask(Task $task, UpdateTaskRequest $request): TaskResponse
{
$task->setName($request->name);
$category = $request->categoryId !== null
? $this->categoryRepository->find($request->categoryId)
: null;
$task->setCategory($category);
$task->setCategoryOverridden(true);
$status = TaskStatus::tryFrom($request->status);
if ($status !== null) {
$task->setStatus($status);
}
$task->setDate($request->date ? new \DateTime($request->date) : null);
$this->em->flush();
return $this->taskSerializer->serializeTask($task, new \DateTimeImmutable('today'));
}
public function deleteTask(Task $task): void
{
$this->em->remove($task);
$this->em->flush();
}
}