diff --git a/README.md b/README.md index f82faca..c74951d 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,7 @@ docker exec ogcore-php php bin/console doctrine:database:create ## Migraciones de datos Para poder migrar los datos desde la base de datos "antigua", previamente necesitamos poder tener un esquema de base de datos con un dump de OpenGnsys. Es decir: + - Creamos una base de datos temporal simulando una insancia de OpenGnsys 1.1. La solicitaremos al equipo de desarrollo de las universidades - Necesitaremos un dump de la base de datos de OpenGnsys 1.1. diff --git a/src/Dto/Input/ClientInput.php b/src/Dto/Input/ClientInput.php index 8c39d2d..06938d6 100644 --- a/src/Dto/Input/ClientInput.php +++ b/src/Dto/Input/ClientInput.php @@ -33,6 +33,7 @@ final class ClientInput public ?string $mac = null; #[Groups(['client:write'])] + #[Assert\Ip] #[ApiProperty(description: 'The IP address of the client', example: "127.0.0.1")] public ?string $ip = null; diff --git a/src/Dto/Input/OrganizationalUnitClassroomInput.php b/src/Dto/Input/OrganizationalUnitClassroomInput.php index dad97b7..4260bee 100644 --- a/src/Dto/Input/OrganizationalUnitClassroomInput.php +++ b/src/Dto/Input/OrganizationalUnitClassroomInput.php @@ -6,6 +6,9 @@ use App\Dto\Output\OrganizationalUnitOutput; use App\Entity\NetworkSettings; use App\Entity\OrganizationalUnit; use App\Model\OrganizationalUnitTypes; +use App\Validator\Constraints\OrganizationalUnitClassroomMulticastMode; +use App\Validator\Constraints\OrganizationalUnitClassroomMulticastPort; +use App\Validator\Constraints\OrganizationalUnitClassroomP2pMode; use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\Serializer\Annotation\Groups; use Symfony\Component\Validator\Constraints as Assert; @@ -40,6 +43,7 @@ final class OrganizationalUnitClassroomInput extends OrganizationalUnitInput public ?string $ntp = null; #[Groups(['organizational-unit:write'])] + #[OrganizationalUnitClassroomP2pMode] public ?string $p2pMode = null; #[Groups(['organizational-unit:write'])] @@ -53,9 +57,11 @@ final class OrganizationalUnitClassroomInput extends OrganizationalUnitInput public ?int $mcastSpeed = null; #[Groups(['organizational-unit:write'])] + #[OrganizationalUnitClassroomMulticastPort] public ?int $mcastPort = null; #[Groups(['organizational-unit:write'])] + #[OrganizationalUnitClassroomMulticastMode] public ?string $mcastMode = null; public function __construct(?OrganizationalUnit $organizationalUnit = null) diff --git a/src/Model/OrganizationalUnitClassroomMulticastModes.php b/src/Model/OrganizationalUnitClassroomMulticastModes.php new file mode 100644 index 0000000..299a4c6 --- /dev/null +++ b/src/Model/OrganizationalUnitClassroomMulticastModes.php @@ -0,0 +1,29 @@ + 'Half Duplex', + self::FULL_DUPLEX => 'Full Duplex', + ]; + + public static function getMcastModeNames(): array + { + return self::MCAST_MODES; + } + + public static function getMcastType(string $mcastMode): ?string + { + return self::MCAST_MODES[$mcastMode] ?? null; + } + + public static function getMcastModes(): array + { + return array_keys(self::MCAST_MODES); + } +} \ No newline at end of file diff --git a/src/Model/OrganizationalUnitClassroomP2pModes.php b/src/Model/OrganizationalUnitClassroomP2pModes.php new file mode 100644 index 0000000..5ee1581 --- /dev/null +++ b/src/Model/OrganizationalUnitClassroomP2pModes.php @@ -0,0 +1,31 @@ + 'El cliente no comparte mientras descarga la imagen', + self::P2P_MODE_PEER => 'El cliente, mientras descarga la imagen, comparte los datos que ya tenga descargados', + self::P2P_MODE_SEEDER => 'Modo de trabajo en modo distribuido', + ]; + + public static function getP2pModeNames(): array + { + return self::P2P_MODE_NAMES; + } + + public static function getP2pModeName(string $p2pMode): ?string + { + return self::P2P_MODE_NAMES[$p2pMode] ?? null; + } + + public static function getP2pModes(): array + { + return array_keys(self::P2P_MODE_NAMES); + } +} \ No newline at end of file diff --git a/src/Validator/Constraints/OrganizationalUnitClassroomMulticastMode.php b/src/Validator/Constraints/OrganizationalUnitClassroomMulticastMode.php new file mode 100644 index 0000000..9ce375a --- /dev/null +++ b/src/Validator/Constraints/OrganizationalUnitClassroomMulticastMode.php @@ -0,0 +1,27 @@ +modes = OrganizationalUnitClassroomMulticastModes::getMcastModes(); + $this->message = sprintf( + 'The multicast mode is not valid. Please use one of the following: %s', + implode(', ', $this->modes) + ); + } + + +} \ No newline at end of file diff --git a/src/Validator/Constraints/OrganizationalUnitClassroomMulticastModeValidator.php b/src/Validator/Constraints/OrganizationalUnitClassroomMulticastModeValidator.php new file mode 100644 index 0000000..ad1b68e --- /dev/null +++ b/src/Validator/Constraints/OrganizationalUnitClassroomMulticastModeValidator.php @@ -0,0 +1,23 @@ +context->buildViolation($constraint->message)->addViolation(); + } + } +} \ No newline at end of file diff --git a/src/Validator/Constraints/OrganizationalUnitClassroomMulticastPort.php b/src/Validator/Constraints/OrganizationalUnitClassroomMulticastPort.php new file mode 100644 index 0000000..9d18892 --- /dev/null +++ b/src/Validator/Constraints/OrganizationalUnitClassroomMulticastPort.php @@ -0,0 +1,21 @@ +message = 'The multicast port is not valid. Please use a number between 9000 and 9050'; + } + + +} \ No newline at end of file diff --git a/src/Validator/Constraints/OrganizationalUnitClassroomMulticastPortValidator.php b/src/Validator/Constraints/OrganizationalUnitClassroomMulticastPortValidator.php new file mode 100644 index 0000000..ef181c5 --- /dev/null +++ b/src/Validator/Constraints/OrganizationalUnitClassroomMulticastPortValidator.php @@ -0,0 +1,26 @@ +context->buildViolation($constraint->message)->addViolation(); + return; + } + } +} \ No newline at end of file diff --git a/src/Validator/Constraints/OrganizationalUnitClassroomP2pMode.php b/src/Validator/Constraints/OrganizationalUnitClassroomP2pMode.php new file mode 100644 index 0000000..c53c275 --- /dev/null +++ b/src/Validator/Constraints/OrganizationalUnitClassroomP2pMode.php @@ -0,0 +1,27 @@ +modes = OrganizationalUnitClassroomP2pModes::getP2pModes(); + $this->message = sprintf( + 'The p2p mode is not valid. Please use one of the following: %s', + implode(', ', $this->modes) + ); + } + + +} \ No newline at end of file diff --git a/src/Validator/Constraints/OrganizationalUnitClassroomP2pModeValidator.php b/src/Validator/Constraints/OrganizationalUnitClassroomP2pModeValidator.php new file mode 100644 index 0000000..2f627b6 --- /dev/null +++ b/src/Validator/Constraints/OrganizationalUnitClassroomP2pModeValidator.php @@ -0,0 +1,22 @@ +context->buildViolation($constraint->message)->addViolation(); + } + } +} \ No newline at end of file