createRequest('GET', 'http://' . $this->ogBootApiUrl . '/ogboot/v1/pxe-templates'); $templateNamesFromApi = $content['message']; $existingTemplates = $this->entityManager->getRepository(PxeTemplate::class)->findAll(); $existingTemplateNames = array_map(fn($t) => $t->getName(), $existingTemplates); foreach ($existingTemplates as $existingTemplate) { if (!in_array($existingTemplate->getName(), $templateNamesFromApi, true)) { $this->entityManager->remove($existingTemplate); } } foreach ($templateNamesFromApi as $templateName) { $templateEntity = $this->entityManager->getRepository(PxeTemplate::class)->findOneBy(['name' => $templateName]); if (!$templateEntity) { $templateEntity = new PxeTemplate(); $templateEntity->setName($templateName); } $templateContent = $this->createRequest('GET', 'http://' . $this->ogBootApiUrl . '/ogboot/v1/pxe-templates/' . $templateEntity->getName()); $templateEntity->setTemplateContent($templateContent['template_content']); $templateEntity->setSynchronized(true); $this->entityManager->persist($templateEntity); } $this->entityManager->flush(); return new JsonResponse(data: $content, status: Response::HTTP_OK); } }