Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified Data/tasks.db
Binary file not shown.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"type": "project",
"license": "proprietary",
"require": {
"php": ">=7.1.3",
"php": ">=7.4",
"ext-ctype": "*",
"ext-iconv": "*",
"composer/package-versions-deprecated": "1.11.99.1",
Expand Down
2 changes: 1 addition & 1 deletion config/routes/annotations.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
controllers:
resource: ../../src/Infrastructure/Controller/
resource: ../../src/Application/Controller/
type: annotation

kernel:
Expand Down
4 changes: 2 additions & 2 deletions config/services.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ services:

# controllers are imported separately to make sure services can be injected
# as action arguments even if you don't extend any base controller class
App\Infrastructure\Controller\:
resource: '../src/Infrastructure/Controller'
App\Application\Controller\:
resource: '../src/Application/Controller'
tags: ['controller.service_arguments']

# add more service definitions when explicit configuration is needed
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace App\Infrastructure\Controller\Action;
namespace App\Application\Controller\Action;

use App\Domain\Model\Usuario;
use Doctrine\ORM\EntityManagerInterface;
Expand All @@ -10,7 +10,7 @@

/**
* Class PostAction
* @package App\Infrastructure\Controller\Action
* @package App\Application\Controller\Action
* @Route(name="post_action", path="/api/post", methods={"POST"})
*/
class PostAction
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
<?php

namespace App\Infrastructure\Controller;
namespace App\Application\Controller;

use App\Domain\Form\Type\ProjetoType;
use App\Domain\Model\Projeto;
use App\Domain\Services\ProjetoService;
use JMS\Serializer\SerializerInterface;
use Psr\Log\LoggerInterface;
use App\Domain\Service\ProjetoService;
use App\Infrastructure\Repository\UsuarioAtribuicaoRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormFactory;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace App\Infrastructure\Controller;
namespace App\Application\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace App\Infrastructure\Controller;
namespace App\Application\Controller;

use App\Domain\Form\Type\TaskType;
use App\Domain\Model\Projeto;
Expand Down
57 changes: 57 additions & 0 deletions src/Application/Controller/TasksTrackerController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?php

namespace App\Application\Controller;


use App\Domain\Model\Projeto;
use App\Domain\Model\Status;
use App\Domain\Model\Task;
use App\Domain\Model\Usuario;
use App\Application\Service\ProjetoServiceImpl;
use App\Infrastructure\Repository\UsuarioRepositoryImpl;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;


/**
* @Route("/task")
*/
class TasksTrackerController extends AbstractController
{

/**
* @var ProjetoServiceImpl $projetosService;
*/
public ProjetoServiceImpl $projetoService;

public UsuarioRepositoryImpl $usuarioRepository;

public function __construct(ProjetoServiceImpl $projetoService, UsuarioRepositoryImpl $usuarioRepository)
{
$this->projetoService = $projetoService;
$this->usuarioRepository = $usuarioRepository;
}


/**
* @Route("/index", name="index")
* @IsGranted("ROLE_ADMIN")
*/
public function index()
{

$numeroProjetos = $this->projetoService->getNumroDeProjetos();
$numeroUsuario = $this->usuarioRepository->getNumeroUsers();

return $this->render(
'index.html.twig',
[
'numeroProjeto' => $numeroProjetos,
'numeroUsuarios' => $numeroUsuario
]
);
}

}
Original file line number Diff line number Diff line change
@@ -1,34 +1,45 @@
<?php

namespace App\Infrastructure\Controller;
namespace App\Application\Controller;


use App\Domain\Model\Usuario;
use App\Domain\Model\UsuarioAtribuicao;
use App\Domain\Service\UsuarioService;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

/**
* Class UsuarioAtribuicaoController
* Class UsuarioController
* @Route("/usuario")
* @package App\Controller
*/
class UsuarioAtribuicaoController extends AbstractController
class UsuarioController extends AbstractController
{

/**
* @var UsuarioService
*/
private UsuarioService $usuarioService;

/**
* UsuarioController constructor.
* @param UsuarioService $usuarioService
*/
public function __construct(UsuarioService $usuarioService)
{
$this->usuarioService = $usuarioService;
}

/**
* @Route("/tasks" , name="usuario_tasks")
*/
public function listarAtribuicoes()
{
$usuario = $this->getUser();
$atribuicoes = $this
->getDoctrine()
->getRepository(UsuarioAtribuicao::class)
->findBy(['usuario' => $usuario->getId()])
;
$atribuicoes = $this->usuarioService.atribuicoes($usuario.getId());

return $this->render('usuario-tasks.html.twig',
[
Expand Down
53 changes: 53 additions & 0 deletions src/Application/Service/ProjetoServiceImpl.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?php

namespace App\Application\Service;

use App\Domain\Model\Projeto;
use App\Domain\Service\ProjetoService;
use App\Infrastructure\Repository\ProjetoRepository;

/**
* Class ProjetoServiceImpl
* @package App\Application\Service
*/
class ProjetoServiceImpl implements ProjetoService
{

/**
* @var ProjetoRepository
*/
public ProjetoRepository $projetoRepository;

/**
* ProjetoServiceImpl constructor.
* @param ProjetoRepository $projetoRepository
*/
public function __construct(ProjetoRepository $projetoRepository)
{
$this->projetoRepository = $projetoRepository;
}

/**
* @param Projeto $projeto
*/
public function salvar(Projeto $projeto): void
{
$this->projetoRepository->salvar($projeto);
}

/**
* @return array
*/
public function listar(): array
{
return $this->projetoRepository->listar();
}

/**
* @return int
*/
public function getNumeroProjetos(): int
{
return $this->projetoRepository->getNumeroProjetos();
}
}
51 changes: 51 additions & 0 deletions src/Application/Service/UsuarioServiceImpl.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?php

namespace App\Application\Service;

use App\Domain\Model\Usuario;
use App\Domain\Model\UsuarioAtribuicao;
use App\Domain\Service\UsuarioService;
use App\Infrastructure\Repository\UsuarioRepository;


/**
* Class UsuarioServiceImpl
* @package App\Application\Service
*/
class UsuarioServiceImpl implements UsuarioService
{

/**
* @var UsuarioRepository
*/
public UsuarioRepository $usuarioRepository;

/**
* UsuarioServiceImpl constructor.
* @param UsuarioRepository $usuarioRepository
*/
public function __construct(UsuarioRepository $usuarioRepository)
{
$this->usuarioRepository = $usuarioRepository;
}

public function salvar(Usuario $usuario): void
{
$this->usuarioRepository->salvar($usuario);
}

public function listar(): array
{
return $this->usuarioRepository->listar();
}

public function atribuicoes(int $id): array
{
return $this
->getDoctrine()
->getRepository(UsuarioAtribuicao::class)
->findBy(['usuario' => $id]);

}

}
2 changes: 0 additions & 2 deletions src/Domain/Model/Projeto.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Monolog\Logger;
use Psr\Log\LoggerInterface;

/**
* @ORM\Entity
Expand Down
14 changes: 0 additions & 14 deletions src/Domain/Model/ProjetoRepositoryInterface.php

This file was deleted.

4 changes: 2 additions & 2 deletions src/Domain/Model/Usuario.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

namespace App\Domain\Model;

use App\Infrastructure\Repository\UsuarioRepository;
use App\Infrastructure\Repository\UsuarioRepositoryImpl;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation as Serializer;
use Symfony\Component\Security\Core\User\UserInterface;

/**
* @ORM\Entity(repositoryClass=UsuarioRepository::class)
* @ORM\Entity(repositoryClass=UsuarioRepositoryImpl::class)
*/
class Usuario implements UserInterface
{
Expand Down
5 changes: 2 additions & 3 deletions src/Domain/Model/UsuarioAtribuicao.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@

namespace App\Domain\Model;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity
* @ORM\Table(name="usuario_atribuicao")
* @ORM\Entity()
* @ORM\Table("usuario_atribuicao")
*/
class UsuarioAtribuicao
{
Expand Down
13 changes: 13 additions & 0 deletions src/Domain/Model/UsuarioAtribuicaoRepositoryInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace App\Domain\Model;

/**
* Interface UsuarioAtribuicaoRepositoryInterface
* @package App\Domain\Model
*/
interface UsuarioAtribuicaoRepositoryInterface
{

public function groupUserAtribuicao(): array;
}
18 changes: 18 additions & 0 deletions src/Domain/Service/ProjetoService.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php

namespace App\Domain\Service;

use App\Domain\Model\Projeto;

/**
* class ProjetoService
* @package App\Domain\Service
*/
interface ProjetoService
{
public function salvar(Projeto $projeto): void;

public function listar(): array;

public function getNumeroProjetos(): int;
}
Loading