diff --git a/README.md b/README.md
index 49a23e3..c40e0dc 100644
--- a/README.md
+++ b/README.md
@@ -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 php enum and a pgsql enum for place type
- [ ] Change get_floors (connectedFloors) to SQL request
+- [ ] Add authentification for editions and some commands
diff --git a/src/Controller/JsonReaderController.php b/src/Controller/JsonReaderController.php
index 350f8d5..de3b00d 100644
--- a/src/Controller/JsonReaderController.php
+++ b/src/Controller/JsonReaderController.php
@@ -18,6 +18,7 @@ use App\Entity\Cylinder;
use App\Entity\Edition;
use App\Entity\Floor;
use App\Entity\Place;
+use App\Entity\PlaceType;
use App\Entity\PlaceName;
use App\Entity\PlaneSurface;
use App\Entity\Point;
@@ -109,43 +110,43 @@ class JsonReaderController extends AbstractController
$data = json_decode($request->getContent(),true);
// Adding all the rooms
- $rooms2Data = $data['rooms2'];
- $cor2Data = $data['cor2'];
- $rooms3Data = $data['rooms3'];
- $cor3Data = $data['cor3'];
- $rooms4Data = $data['rooms4'];
- $cor4Data = $data['cor4'];
- $rooms34Data = $data['bothRooms'];
- $roomsXData = $data['allRooms'];
+ $rooms2Data = $data['M-GN1-2'];
+ $cor2Data = $data['M-GN1-2-co'];
+ $rooms3Data = $data['M-GN1-3'];
+ $cor3Data = $data['M-GN1-3-co'];
+ $rooms4Data = $data['M-GN1-4'];
+ $cor4Data = $data['M-GN1-4-co'];
+ $rooms34Data = $data['M-GN1-34'];
+ $roomsXData = $data['M-GN1-X'];
// We create the rooms
$rooms2 = [];
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 = [];
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 = [];
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 = [];
foreach($rooms34Data as $rData) {
- $rooms34[] = JsonReaderController::addRoom($rData, "R", $mr);
+ $rooms34[] = JsonReaderController::addRoom($rData, PlaceType::Room, $mr);
}
$roomsX = [];
foreach($roomsXData as $rData) {
/* Determining between stairs and lift */
- echo sizeof(json_decode($rData['points'],true)) . '
';
- if(sizeof(json_decode($rData['points'],true))<=5)
- $letter = "L";
+ echo sizeof($rData['points']) . '
';
+ if(sizeof($rData['points'])<=5)
+ $letter = PlaceType::Lift;
else
- $letter = "S";
+ $letter = PlaceType::Stairs;
$roomsX[] = JsonReaderController::addRoom($rData, $letter, $mr);
}
@@ -218,14 +219,13 @@ class JsonReaderController extends AbstractController
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();
-
+
$height = (float) $room['height'];
$z = (float) $room['z'];
- $name = $room['name'];
- $points = json_decode($room['points'],true);
+ $points = $room['points'];
$r = new Place();
$r->setType($roomType);
diff --git a/src/Entity/Place.php b/src/Entity/Place.php
index 8c817d8..1482a7c 100644
--- a/src/Entity/Place.php
+++ b/src/Entity/Place.php
@@ -7,6 +7,14 @@ use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
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)]
class Place
{
@@ -15,8 +23,7 @@ class Place
#[ORM\Column(type: "integer")]
private $id;
- #[ORM\Column(type: "string")]
- // Either 'C'orridor , 'S'tairs , 'L'ift or 'R'oom
+ #[ORM\Column(type: "string", enumType: PlaceType::class)]
private $type;
#[ORM\OneToMany(targetEntity: PlaceName::class, mappedBy: "place")]
@@ -58,17 +65,14 @@ class Place
return $this->id;
}
- public function getType(): ?string
+ public function getType(): ?PlaceType
{
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;
- return true;
- }
- return false;
+ $this->type = $type;
+ return true;
}
/**