*/ class SettingsController extends AbstractApiCrudController { protected string $entityClass = Entity\Settings::class; public function __construct( protected Entity\Repository\SettingsRepository $settingsRepo, ReloadableEntityManagerInterface $em, Serializer $serializer, ValidatorInterface $validator ) { parent::__construct($em, $serializer, $validator); } public function listAction( ServerRequest $request, Response $response, ?string $group = null ): ResponseInterface { $context = []; if (null !== $group && in_array($group, Entity\Settings::VALID_GROUPS, true)) { $context[AbstractNormalizer::GROUPS] = [$group]; } $settings = $this->settingsRepo->readSettings(); return $response->withJson($this->toArray($settings, $context)); } public function updateAction( ServerRequest $request, Response $response, ?string $group = null ): ResponseInterface { $context = []; if (null !== $group && in_array($group, Entity\Settings::VALID_GROUPS, true)) { $context[AbstractNormalizer::GROUPS] = [$group]; } $settings = $this->settingsRepo->readSettings(); if ($group === Entity\Settings::GROUP_GENERAL && !$settings->isSetupComplete()) { $settings->updateSetupComplete(); } $this->editRecord((array)$request->getParsedBody(), $settings, $context); return $response->withJson(Entity\Api\Status::success()); } }