Update Unidades organizativas

master
Manuel Aranda Rosales 2024-06-21 10:40:16 +02:00
parent bb664c52e6
commit c3b933a5c0
1 changed files with 35 additions and 89 deletions

@ -260,103 +260,49 @@ properties:
- **Identifier**: `true` - **Identifier**: `true`
### DTO de Entrada de Unidad Organizativa ### DTO de Entrada de Unidad Organizativa
### Fields Required in OrganizationalUnit Endpoint Input
```php 1. **name**
<?php - **Type**: string
- **Validation**: Not blank
- **Groups**: `organizational-unit:write`
namespace App\Dto\Input; 2. **parent**
- **Type**: `OrganizationalUnitOutput`
- **Groups**: `organizational-unit:write`
use ApiPlatform\Metadata\ApiProperty; 3. **description**
use App\Dto\Output\OrganizationalUnitOutput; - **Type**: string
use App\Entity\OrganizationalUnit; - **Groups**: `organizational-unit:write`
use App\Validator\Constraints\OrganizationalUnitMulticastMode;
use App\Validator\Constraints\OrganizationalUnitMulticastPort;
use App\Validator\Constraints\OrganizationalUnitP2PMode;
use App\Validator\Constraints\OrganizationalUnitType;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
class OrganizationalUnitInput 4. **location**
{ - **Type**: string
#[Assert\NotBlank] - **Groups**: `organizational-unit:write`
#[Groups(['organizational-unit:write'])]
public ?string $name = null;
#[Groups(['organizational-unit:write'])] 5. **projector**
public ?OrganizationalUnitOutput $parent = null; - **Type**: boolean
- **Groups**: `organizational-unit:write`
#[Groups(['organizational-unit:write'])] 6. **board**
public ?string $description = null; - **Type**: boolean
- **Groups**: `organizational-unit:write`
#[Groups(['organizational-unit:write'])] 7. **capacity**
public ?string $location = null; - **Type**: integer
- **Validation**: Greater than 0
- **Groups**: `organizational-unit:write`
#[Groups(['organizational-unit:write'])] 8. **comments**
public ?bool $projector = null; - **Type**: string
- **Groups**: `organizational-unit:write`
#[Groups(['organizational-unit:write'])] 9. **type**
public ?bool $board = null; - **Type**: string
- **Validation**: Custom constraint `OrganizationalUnitType`
- **Groups**: `organizational-unit:write`
#[Assert\GreaterThan(0)] 10. **networkSettings**
#[Groups(['organizational-unit:write'])] - **Type**: `NetworkSettingsInput`
public ?int $capacity = null; - **Validation**: Valid
- **Groups**: `organizational-unit:write`
#[Groups(['organizational-unit:write'])]
public ?string $comments = null;
#[Groups(['organizational-unit:write'])]
#[OrganizationalUnitType]
public ?string $type = null;
#[Groups(['organizational-unit:write'])]
#[Assert\Valid()]
public ?NetworkSettingsInput $networkSettings = null;
public function __construct(?OrganizationalUnit $organizationalUnit = null)
{
if (!$organizationalUnit) {
return;
}
$this->name = $organizationalUnit->getName();
if ($organizationalUnit->getParent()) {
$this->parent = new OrganizationalUnitOutput($organizationalUnit->getParent());
}
$this->description = $organizationalUnit->getDescription();
$this->location = $organizationalUnit->getLocation();
$this->projector = $organizationalUnit->isProjector();
$this->board = $organizationalUnit->isBoard();
$this->capacity = $organizationalUnit->getCapacity();
$this->comments = $organizationalUnit->getComments();
$this->type = $organizationalUnit->getType();
if ($organizationalUnit->getNetworkSettings()) {
$this->networkSettings = new NetworkSettingsInput($organizationalUnit->getNetworkSettings());
}
}
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->setLocation($this->location);
$organizationalUnit->setProjector($this->projector);
$organizationalUnit->setBoard($this->board);
$organizationalUnit->setCapacity($this->capacity);
$organizationalUnit->setComments($this->comments);
$organizationalUnit->setType($this->type);
if ($this->networkSettings) {
$organizationalUnit->setNetworkSettings($this->networkSettings->createOrUpdateEntity($organizationalUnit->getNetworkSettings()));
}
return $organizationalUnit;
}
}
``` ```