Add PlaceType enum and modifiy initialData syntax (debug)

This commit is contained in:
Mysaa 2023-03-02 23:17:24 +01:00
parent b958948e35
commit 7621190896
Signed by: Mysaa
GPG Key ID: 7054D5D6A90F084F
3 changed files with 37 additions and 32 deletions

View File

@ -34,3 +34,4 @@ Your installation should be complete, you can run `symfony local:server:start` t
- [ ] Use a representation superclass (both db and php) - [ ] Use a representation superclass (both db and php)
- [ ] Use a php enum and a pgsql enum for place type - [ ] Use a php enum and a pgsql enum for place type
- [ ] Change get_floors (connectedFloors) to SQL request - [ ] Change get_floors (connectedFloors) to SQL request
- [ ] Add authentification for editions and some commands

View File

@ -18,6 +18,7 @@ use App\Entity\Cylinder;
use App\Entity\Edition; use App\Entity\Edition;
use App\Entity\Floor; use App\Entity\Floor;
use App\Entity\Place; use App\Entity\Place;
use App\Entity\PlaceType;
use App\Entity\PlaceName; use App\Entity\PlaceName;
use App\Entity\PlaneSurface; use App\Entity\PlaneSurface;
use App\Entity\Point; use App\Entity\Point;
@ -109,43 +110,43 @@ class JsonReaderController extends AbstractController
$data = json_decode($request->getContent(),true); $data = json_decode($request->getContent(),true);
// Adding all the rooms // Adding all the rooms
$rooms2Data = $data['rooms2']; $rooms2Data = $data['M-GN1-2'];
$cor2Data = $data['cor2']; $cor2Data = $data['M-GN1-2-co'];
$rooms3Data = $data['rooms3']; $rooms3Data = $data['M-GN1-3'];
$cor3Data = $data['cor3']; $cor3Data = $data['M-GN1-3-co'];
$rooms4Data = $data['rooms4']; $rooms4Data = $data['M-GN1-4'];
$cor4Data = $data['cor4']; $cor4Data = $data['M-GN1-4-co'];
$rooms34Data = $data['bothRooms']; $rooms34Data = $data['M-GN1-34'];
$roomsXData = $data['allRooms']; $roomsXData = $data['M-GN1-X'];
// We create the rooms // We create the rooms
$rooms2 = []; $rooms2 = [];
foreach($rooms2Data as $rData) { foreach($rooms2Data as $rData) {
$rooms2[] = JsonReaderController::addRoom($rData, "R", $mr); $rooms2[] = JsonReaderController::addRoom($rData, PlaceType::Room, $mr);
} }
$cor2 = JsonReaderController::addRoom($cor2Data, "C", $mr); $cor2 = JsonReaderController::addRoom($cor2Data[0], PlaceType::Corridor, $mr);
$rooms3 = []; $rooms3 = [];
foreach($rooms3Data as $rData) { foreach($rooms3Data as $rData) {
$rooms3[] = JsonReaderController::addRoom($rData, "R", $mr); $rooms3[] = JsonReaderController::addRoom($rData, PlaceType::Room, $mr);
} }
$cor3 = JsonReaderController::addRoom($cor3Data, "C", $mr); $cor3 = JsonReaderController::addRoom($cor3Data[0], PlaceType::Corridor, $mr);
$rooms4 = []; $rooms4 = [];
foreach($rooms4Data as $rData) { foreach($rooms4Data as $rData) {
$rooms4[] = JsonReaderController::addRoom($rData, "R", $mr); $rooms4[] = JsonReaderController::addRoom($rData, PlaceType::Room, $mr);
} }
$cor4 = JsonReaderController::addRoom($cor4Data, "C", $mr); $cor4 = JsonReaderController::addRoom($cor4Data[0], PlaceType::Corridor, $mr);
$rooms34 = []; $rooms34 = [];
foreach($rooms34Data as $rData) { foreach($rooms34Data as $rData) {
$rooms34[] = JsonReaderController::addRoom($rData, "R", $mr); $rooms34[] = JsonReaderController::addRoom($rData, PlaceType::Room, $mr);
} }
$roomsX = []; $roomsX = [];
foreach($roomsXData as $rData) { foreach($roomsXData as $rData) {
/* Determining between stairs and lift */ /* Determining between stairs and lift */
echo sizeof(json_decode($rData['points'],true)) . '<br/>'; echo sizeof($rData['points']) . '<br/>';
if(sizeof(json_decode($rData['points'],true))<=5) if(sizeof($rData['points'])<=5)
$letter = "L"; $letter = PlaceType::Lift;
else else
$letter = "S"; $letter = PlaceType::Stairs;
$roomsX[] = JsonReaderController::addRoom($rData, $letter, $mr); $roomsX[] = JsonReaderController::addRoom($rData, $letter, $mr);
} }
@ -218,14 +219,13 @@ class JsonReaderController extends AbstractController
return new Response('', Response::HTTP_OK); return new Response('', Response::HTTP_OK);
} }
public function addRoom(array $room, string $roomType, ManagerRegistry $mr): Place { public function addRoom(array $room, PlaceType $roomType, ManagerRegistry $mr): Place {
$manager = $mr->getManager(); $manager = $mr->getManager();
$height = (float) $room['height']; $height = (float) $room['height'];
$z = (float) $room['z']; $z = (float) $room['z'];
$name = $room['name']; $points = $room['points'];
$points = json_decode($room['points'],true);
$r = new Place(); $r = new Place();
$r->setType($roomType); $r->setType($roomType);

View File

@ -7,6 +7,14 @@ use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
enum PlaceType: string {
case Room = 'R';
case Corridor = 'C';
case Stairs = 'S';
case Lift = 'L';
case Toilets = 'T';
}
#[ORM\Entity(repositoryClass: PlaceRepository::class)] #[ORM\Entity(repositoryClass: PlaceRepository::class)]
class Place class Place
{ {
@ -15,8 +23,7 @@ class Place
#[ORM\Column(type: "integer")] #[ORM\Column(type: "integer")]
private $id; private $id;
#[ORM\Column(type: "string")] #[ORM\Column(type: "string", enumType: PlaceType::class)]
// Either 'C'orridor , 'S'tairs , 'L'ift or 'R'oom
private $type; private $type;
#[ORM\OneToMany(targetEntity: PlaceName::class, mappedBy: "place")] #[ORM\OneToMany(targetEntity: PlaceName::class, mappedBy: "place")]
@ -58,17 +65,14 @@ class Place
return $this->id; return $this->id;
} }
public function getType(): ?string public function getType(): ?PlaceType
{ {
return $this->type; return $this->type;
} }
public function setType(string $type): bool public function setType(PlaceType $type): bool
{ {
if ($type == 'C' or $type == 'S' or $type == 'L' or $type == 'R') { $this->type = $type;
$this->type = $type; return true;
return true;
}
return false;
} }
/** /**