Update Unidades organizativas

master
Manuel Aranda Rosales 2024-06-21 10:39:57 +02:00
parent e0b19263e7
commit bb664c52e6
1 changed files with 36 additions and 98 deletions

@ -105,116 +105,54 @@ properties:
#### App\Entity\OrganizationalUnit #### App\Entity\OrganizationalUnit
- **id**: ### Fields Required in OrganizationalUnit Endpoint Input
- **Identifier**: `false`
- **uuid**: 1. **name**
- **Identifier**: `true` - **Type**: string
- **Validation**: Not blank
- **Groups**: `organizational-unit:write`
### Organizational Unit Input DTO 2. **parent**
- **Type**: `OrganizationalUnitOutput`
- **Groups**: `organizational-unit:write`
```php 3. **description**
<?php - **Type**: string
- **Groups**: `organizational-unit:write`
namespace App\Dto\Input; 4. **location**
- **Type**: string
- **Groups**: `organizational-unit:write`
use ApiPlatform\Metadata\ApiProperty; 5. **projector**
use App\Dto\Output\OrganizationalUnitOutput; - **Type**: boolean
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 6. **board**
{ - **Type**: boolean
#[Assert\NotBlank] - **Groups**: `organizational-unit:write`
#[Groups(['organizational-unit:write'])]
public ?string $name = null;
#[Groups(['organizational-unit:write'])] 7. **capacity**
public ?OrganizationalUnitOutput $parent = null; - **Type**: integer
- **Validation**: Greater than 0
- **Groups**: `organizational-unit:write`
#[Groups(['organizational-unit:write'])] 8. **comments**
public ?string $description = null; - **Type**: string
- **Groups**: `organizational-unit:write`
#[Groups(['organizational-unit:write'])] 9. **type**
public ?string $location = null; - **Type**: string
- **Validation**: Custom constraint `OrganizationalUnitType`
#[Groups(['organizational-unit:write'])] - **Groups**: `organizational-unit:write`
public ?bool $projector = null;
#[Groups(['organizational-unit:write'])]
public ?bool $board = null;
#[Assert\GreaterThan(0)]
#[Groups(['organizational-unit:write'])]
public ?int $capacity = null;
#[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;
}
}
```
10. **networkSettings**
- **Type**: `NetworkSettingsInput`
- **Validation**: Valid
- **Groups**: `organizational-unit:write`
--- ---
## Español ## Español
### Tabla de Contenidos ### Tabla de Contenidos