refs #427. Fixed organizationalUnit bug in POST/PUT classroom
parent
539f5557b1
commit
ccc33d7615
|
@ -2,6 +2,7 @@ resources:
|
|||
App\Entity\OrganizationalUnit:
|
||||
processor: App\State\Processor\OrganizationalUnitProcessor
|
||||
output: App\Dto\Output\OrganizationalUnitOutput
|
||||
input: App\Dto\Input\OrganizationalUnitInput
|
||||
normalization_context:
|
||||
groups: ['default', 'organizational-unit:read']
|
||||
denormalization_context:
|
||||
|
|
|
@ -38,6 +38,8 @@ services:
|
|||
depends_on:
|
||||
- database
|
||||
environment:
|
||||
XDEBUG_CLIENT_HOST: 127.17.0.1
|
||||
XDEBUG_CLIENT_PORT: 9003
|
||||
PHP_IDE_CONFIG: serverName=ogcore
|
||||
networks:
|
||||
- ogcore-network
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
xdebug.mode=debug
|
||||
xdebug.start_with_request=yes
|
||||
xdebug.client_host=172.17.0.1/
|
||||
xdebug.client_port=9003
|
||||
xdebug.client_host=${XDEBUG_CLIENT_HOST}
|
||||
xdebug.client_port=${XDEBUG_CLIENT_PORT}
|
|
@ -2,52 +2,13 @@
|
|||
|
||||
namespace App\Dto\Input;
|
||||
|
||||
use App\Dto\Output\OrganizationalUnitOutput;
|
||||
use App\Entity\OrganizationalUnit;
|
||||
use App\Model\OrganizationalUnitTypes;
|
||||
use Symfony\Component\Serializer\Annotation\Groups;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
final class OrganizationalUnitClassroomGroupInput
|
||||
final class OrganizationalUnitClassroomGroupInput extends OrganizationalUnitInput
|
||||
{
|
||||
#[Assert\NotBlank]
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $name = null;
|
||||
|
||||
#[Assert\NotNull]
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?OrganizationalUnitOutput $parent = null;
|
||||
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $description = null;
|
||||
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $comments = null;
|
||||
|
||||
public function __construct(?OrganizationalUnit $organizationalUnit = null)
|
||||
{
|
||||
if (!$organizationalUnit) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->name = $organizationalUnit->getName();
|
||||
$this->parent = new OrganizationalUnitOutput($organizationalUnit->getParent());
|
||||
$this->description = $organizationalUnit->getDescription();
|
||||
$this->comments = $organizationalUnit->getComments();
|
||||
}
|
||||
|
||||
public function createOrUpdateEntity(?OrganizationalUnit $organizationalUnit = null): OrganizationalUnit
|
||||
{
|
||||
if (!$organizationalUnit) {
|
||||
$organizationalUnit = new OrganizationalUnit();
|
||||
}
|
||||
|
||||
$organizationalUnit->setName($this->name);
|
||||
$organizationalUnit->setParent($this->parent->getEntity());
|
||||
$organizationalUnit->setType(OrganizationalUnitTypes::CLASSROOMS_GROUP);
|
||||
$organizationalUnit->setDescription($this->description);
|
||||
$organizationalUnit->setComments($this->comments);
|
||||
|
||||
return $organizationalUnit;
|
||||
parent::__construct($organizationalUnit, OrganizationalUnitTypes::CLASSROOMS_GROUP);
|
||||
}
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace App\Dto\Input;
|
||||
|
||||
use App\Dto\Output\OrganizationalUnitOutput;
|
||||
use App\Entity\NetworkSettings;
|
||||
use App\Entity\OrganizationalUnit;
|
||||
use App\Model\OrganizationalUnitTypes;
|
||||
|
@ -10,22 +9,8 @@ use Doctrine\ORM\EntityManagerInterface;
|
|||
use Symfony\Component\Serializer\Annotation\Groups;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
final class OrganizationalUnitClassroomInput
|
||||
final class OrganizationalUnitClassroomInput extends OrganizationalUnitInput
|
||||
{
|
||||
#[Assert\NotBlank]
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $name = null;
|
||||
|
||||
#[Assert\NotNull]
|
||||
#[Groups(['organizational-unit:write', 'organizational-unit:patch'])]
|
||||
public ?OrganizationalUnitOutput $parent = null;
|
||||
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $description = null;
|
||||
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $comments = null;
|
||||
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $location = null;
|
||||
|
||||
|
@ -74,14 +59,12 @@ final class OrganizationalUnitClassroomInput
|
|||
|
||||
public function __construct(?OrganizationalUnit $organizationalUnit = null)
|
||||
{
|
||||
parent::__construct($organizationalUnit, OrganizationalUnitTypes::CLASSROOM);
|
||||
|
||||
if (!$organizationalUnit) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->name = $organizationalUnit->getName();
|
||||
$this->parent = new OrganizationalUnitOutput($organizationalUnit->getParent());
|
||||
$this->description = $organizationalUnit->getDescription();
|
||||
$this->comments = $organizationalUnit->getComments();
|
||||
$this->location = $organizationalUnit->getLocation();
|
||||
$this->projector = $organizationalUnit->isProjector();
|
||||
$this->board = $organizationalUnit->isBoard();
|
||||
|
@ -108,11 +91,7 @@ final class OrganizationalUnitClassroomInput
|
|||
$organizationalUnit = new OrganizationalUnit();
|
||||
}
|
||||
|
||||
$organizationalUnit->setName($this->name);
|
||||
$organizationalUnit->setType(OrganizationalUnitTypes::CLASSROOM);
|
||||
$organizationalUnit->setParent($this->parent->getEntity());
|
||||
$organizationalUnit->setDescription($this->description);
|
||||
$organizationalUnit->setComments($this->comments);
|
||||
$organizationalUnit->setLocation($this->location);
|
||||
$organizationalUnit->setProjector($this->projector);
|
||||
$organizationalUnit->setBoard($this->board);
|
||||
|
|
|
@ -2,52 +2,13 @@
|
|||
|
||||
namespace App\Dto\Input;
|
||||
|
||||
use App\Dto\Output\OrganizationalUnitOutput;
|
||||
use App\Entity\OrganizationalUnit;
|
||||
use App\Model\OrganizationalUnitTypes;
|
||||
use Symfony\Component\Serializer\Annotation\Groups;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
final class OrganizationalUnitClientGroupInput
|
||||
final class OrganizationalUnitClientGroupInput extends OrganizationalUnitInput
|
||||
{
|
||||
#[Assert\NotBlank]
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $name = null;
|
||||
|
||||
#[Assert\NotNull]
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?OrganizationalUnitOutput $parent = null;
|
||||
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $description = null;
|
||||
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $comments = null;
|
||||
|
||||
public function __construct(?OrganizationalUnit $organizationalUnit = null)
|
||||
{
|
||||
if (!$organizationalUnit) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->name = $organizationalUnit->getName();
|
||||
$this->parent = new OrganizationalUnitOutput($organizationalUnit->getParent());
|
||||
$this->description = $organizationalUnit->getDescription();
|
||||
$this->comments = $organizationalUnit->getComments();
|
||||
}
|
||||
|
||||
public function createOrUpdateEntity(?OrganizationalUnit $organizationalUnit = null): OrganizationalUnit
|
||||
{
|
||||
if (!$organizationalUnit) {
|
||||
$organizationalUnit = new OrganizationalUnit();
|
||||
}
|
||||
|
||||
$organizationalUnit->setName($this->name);
|
||||
$organizationalUnit->setParent($this->parent->getEntity());
|
||||
$organizationalUnit->setType(OrganizationalUnitTypes::CLIENTS_GROUP);
|
||||
$organizationalUnit->setDescription($this->description);
|
||||
$organizationalUnit->setComments($this->comments);
|
||||
|
||||
return $organizationalUnit;
|
||||
parent::__construct($organizationalUnit, OrganizationalUnitTypes::CLIENTS_GROUP);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
<?php
|
||||
|
||||
namespace App\Dto\Input;
|
||||
|
||||
use App\Dto\Output\OrganizationalUnitOutput;
|
||||
use App\Entity\OrganizationalUnit;
|
||||
use Symfony\Component\Serializer\Annotation\Groups;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
class OrganizationalUnitInput
|
||||
{
|
||||
#[Assert\NotBlank]
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $name = null;
|
||||
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?OrganizationalUnitOutput $parent = null;
|
||||
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $description = null;
|
||||
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $comments = null;
|
||||
|
||||
public function __construct(?OrganizationalUnit $organizationalUnit = null, private readonly ?string $type = null)
|
||||
{
|
||||
if (!$organizationalUnit) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->name = $organizationalUnit->getName();
|
||||
if ($organizationalUnit->getParent()) {
|
||||
$this->parent = new OrganizationalUnitOutput($organizationalUnit->getParent());
|
||||
}
|
||||
$this->description = $organizationalUnit->getDescription();
|
||||
$this->comments = $organizationalUnit->getComments();
|
||||
}
|
||||
|
||||
public function createOrUpdateEntity(?OrganizationalUnit $organizationalUnit = null): OrganizationalUnit
|
||||
{
|
||||
if (!$organizationalUnit) {
|
||||
$organizationalUnit = new OrganizationalUnit();
|
||||
}
|
||||
|
||||
$organizationalUnit->setName($this->name);
|
||||
if ($this->parent) {
|
||||
$organizationalUnit->setParent($this->parent->getEntity());
|
||||
}
|
||||
$organizationalUnit->setDescription($this->description);
|
||||
$organizationalUnit->setComments($this->comments);
|
||||
$organizationalUnit->setType($this->type);
|
||||
|
||||
return $organizationalUnit;
|
||||
}
|
||||
}
|
|
@ -4,43 +4,11 @@ namespace App\Dto\Input;
|
|||
|
||||
use App\Entity\OrganizationalUnit;
|
||||
use App\Model\OrganizationalUnitTypes;
|
||||
use Symfony\Component\Serializer\Annotation\Groups;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
final class OrganizationalUnitRootInput
|
||||
final class OrganizationalUnitRootInput extends OrganizationalUnitInput
|
||||
{
|
||||
#[Assert\NotBlank]
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $name = null;
|
||||
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $description = null;
|
||||
|
||||
#[Groups(['organizational-unit:write'])]
|
||||
public ?string $comments = null;
|
||||
|
||||
public function __construct(?OrganizationalUnit $organizationalUnit = null)
|
||||
{
|
||||
if (!$organizationalUnit) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->name = $organizationalUnit->getName();
|
||||
$this->description = $organizationalUnit->getDescription();
|
||||
$this->comments = $organizationalUnit->getComments();
|
||||
}
|
||||
|
||||
public function createOrUpdateEntity(?OrganizationalUnit $organizationalUnit = null): OrganizationalUnit
|
||||
{
|
||||
if (!$organizationalUnit) {
|
||||
$organizationalUnit = new OrganizationalUnit();
|
||||
}
|
||||
|
||||
$organizationalUnit->setName($this->name);
|
||||
$organizationalUnit->setType(OrganizationalUnitTypes::ORGANIZATIONAL_UNIT);
|
||||
$organizationalUnit->setDescription($this->description);
|
||||
$organizationalUnit->setComments($this->comments);
|
||||
|
||||
return $organizationalUnit;
|
||||
parent::__construct($organizationalUnit, OrganizationalUnitTypes::ORGANIZATIONAL_UNIT);
|
||||
}
|
||||
}
|
|
@ -20,7 +20,7 @@ final class ClientOutput extends AbstractOutput
|
|||
public ?string $netiface = '';
|
||||
|
||||
#[Groups(['client:read'])]
|
||||
public ?OrganizationalUnit $organizationalUnit = null;
|
||||
public ?OrganizationalUnitOutput $organizationalUnit = null;
|
||||
|
||||
#[Groups(['client:read'])]
|
||||
public \DateTime $createAt;
|
||||
|
@ -35,7 +35,7 @@ final class ClientOutput extends AbstractOutput
|
|||
$this->name = $client->getName();
|
||||
$this->serialNumber = $client->getSerialNumber();
|
||||
$this->netiface = $client->getNetiface();
|
||||
$this->organizationalUnit = $client->getOrganizationalUnit();
|
||||
$this->organizationalUnit = new OrganizationalUnitOutput($client->getOrganizationalUnit());
|
||||
$this->createAt = $client->getCreatedAt();
|
||||
$this->createBy = $client->getCreatedBy();
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace App\Dto\Output;
|
||||
|
||||
use ApiPlatform\Metadata\ApiProperty;
|
||||
use ApiPlatform\Metadata\Get;
|
||||
use App\Entity\OrganizationalUnit;
|
||||
use Symfony\Component\Serializer\Annotation\Groups;
|
||||
|
|
|
@ -12,6 +12,7 @@ use ApiPlatform\Validator\ValidatorInterface;
|
|||
use App\Dto\Input\OrganizationalUnitClassroomGroupInput;
|
||||
use App\Dto\Input\OrganizationalUnitClassroomInput;
|
||||
use App\Dto\Input\OrganizationalUnitClientGroupInput;
|
||||
use App\Dto\Input\OrganizationalUnitInput;
|
||||
use App\Dto\Input\OrganizationalUnitRootInput;
|
||||
use App\Dto\Output\OrganizationalUnitOutput;
|
||||
use App\Repository\OrganizationalUnitRepository;
|
||||
|
@ -54,7 +55,7 @@ class OrganizationalUnitProcessor implements ProcessorInterface
|
|||
throw new \Exception(sprintf('data is not an instance of %s, %s, %s, or %s',
|
||||
OrganizationalUnitRootInput::class,
|
||||
OrganizationalUnitClassroomInput::class,
|
||||
OrganizationalUnitClientGroupInput::class,
|
||||
OrganizationalUnitInput::class,
|
||||
OrganizationalUnitClassroomGroupInput::class
|
||||
));
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ use ApiPlatform\State\ProviderInterface;
|
|||
use App\Dto\Input\OrganizationalUnitClassroomGroupInput;
|
||||
use App\Dto\Input\OrganizationalUnitClassroomInput;
|
||||
use App\Dto\Input\OrganizationalUnitClientGroupInput;
|
||||
use App\Dto\Input\OrganizationalUnitInput;
|
||||
use App\Dto\Input\OrganizationalUnitRootInput;
|
||||
use App\Dto\Input\UserGroupInput;
|
||||
use App\Dto\Output\OrganizationalUnitOutput;
|
||||
|
|
Loading…
Reference in New Issue