From 4ac179f7b6edf791a4d71c7f112bae4a03ec60c3 Mon Sep 17 00:00:00 2001 From: Charles Date: Mon, 23 Feb 2026 10:30:21 +0100 Subject: [PATCH] Create org on remote call --- docs/API.md | 12 +++++++++--- src/Service/SSO/ProjectService.php | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/API.md b/docs/API.md index 03e5c75..00e50f9 100644 --- a/docs/API.md +++ b/docs/API.md @@ -41,6 +41,7 @@ The route should be as follows: ``` Keep the same structure for the project tree, create an Api folder in the controller, a V1 folder and then create your controller. Here is a full example of a controller with the create method. +On crée une organization si elle n'existe pas ```php getContent(), true, 512, JSON_THROW_ON_ERROR); $projet = new Projet(); - $entity = $this->entityManager->getRepository(Entity::class)->find($data['entity_id']); + $entity = $this->entityManager->getRepository(Entity::class)->findOneBy([ 'ssoId' => $data['orgId']]); + // Si l'entité n'existe pas, on la crée + if(!$entity){ + $this->createEntity($data['orgId'], $data['orgName']); + $entity = $this->entityManager->getRepository(Entity::class)->findOneBy([ 'ssoId' => $data['orgId']]); + } $precision= $data['timestamp']; $validPrecisions = array_map(fn($case) => $case->value, TimestampPrecision::cases()); if (!in_array($precision, $validPrecisions, true)) { @@ -68,10 +74,10 @@ class ProjectApi extends AbstractController{ try { $timestampPrecision = TimestampPrecision::from($precision); $projet->setTimestampPrecision($timestampPrecision); - $projet->setProjet($data['projet']); + $projet->setProjet($data['name']); $projet->setEntityId($entity); $projet->setBdd($data['bdd']); - $projet->setIsactive($data['isactive']); + $projet->setIsactive($data['isActive']); $projet->setLogo($data['logo']); $projet->setDeletionAllowed($data['deletion']); $projet->setSsoId($data['id']); // c'est l'id du projet dans le portail, pas la bdd local diff --git a/src/Service/SSO/ProjectService.php b/src/Service/SSO/ProjectService.php index a31f451..a316bda 100644 --- a/src/Service/SSO/ProjectService.php +++ b/src/Service/SSO/ProjectService.php @@ -77,6 +77,7 @@ class ProjectService 'id' => $project->getId(), 'name' => $project->getName(), 'orgId' => $project->getOrganization()->getId(), + 'orgName' => $project->getOrganization()->getName(), 'bdd' => $project->getBddName(), 'isActive' => $project->isActive(), 'logo' => $project->getLogo(),