exampleContactService->defaultContactExists()) { try { $this->exampleContactService->setCard(); } catch (\Exception $e) { $this->logger->error('Could not create default contact', ['exception' => $e]); return new JSONResponse([], Http::STATUS_INTERNAL_SERVER_ERROR); } } $this->exampleContactService->setDefaultContactEnabled($allow); return new JSONResponse([], Http::STATUS_OK); } #[NoCSRFRequired] #[FrontpageRoute(verb: 'GET', url: '/api/defaultcontact/contact')] public function getDefaultContact(): DataDownloadResponse { $cardData = $this->exampleContactService->getCard() ?? file_get_contents(__DIR__ . '/../ExampleContentFiles/exampleContact.vcf'); return new DataDownloadResponse($cardData, 'example_contact.vcf', 'text/vcard'); } #[FrontpageRoute(verb: 'PUT', url: '/api/defaultcontact/contact')] public function setDefaultContact(?string $contactData = null) { if (!$this->exampleContactService->isDefaultContactEnabled()) { return new JSONResponse([], Http::STATUS_FORBIDDEN); } $this->exampleContactService->setCard($contactData); return new JSONResponse([], Http::STATUS_OK); } #[FrontpageRoute(verb: 'POST', url: '/api/exampleEvent/enable')] public function setCreateExampleEvent(bool $enable): JSONResponse { $this->exampleEventService->setCreateExampleEvent($enable); return new JsonResponse([]); } #[FrontpageRoute(verb: 'GET', url: '/api/exampleEvent/event')] #[NoCSRFRequired] public function downloadExampleEvent(): DataDownloadResponse { $exampleEvent = $this->exampleEventService->getExampleEvent(); return new DataDownloadResponse( $exampleEvent->getIcs(), 'example_event.ics', 'text/calendar', ); } #[FrontpageRoute(verb: 'POST', url: '/api/exampleEvent/event')] public function uploadExampleEvent(string $ics): JSONResponse { if (!$this->exampleEventService->shouldCreateExampleEvent()) { return new JSONResponse([], Http::STATUS_FORBIDDEN); } $this->exampleEventService->saveCustomExampleEvent($ics); return new JsonResponse([]); } #[FrontpageRoute(verb: 'DELETE', url: '/api/exampleEvent/event')] public function deleteExampleEvent(): JSONResponse { $this->exampleEventService->deleteCustomExampleEvent(); return new JsonResponse([]); } }