From 1267cb3d95cf38fbb9eac788275148adacd0a637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=91cze=20Bence?= Date: Fri, 16 Jun 2023 21:28:59 +0200 Subject: [PATCH] RVRNEXT-39 implement community delete --- src/Controller/CommunityController.php | 37 ++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/Controller/CommunityController.php b/src/Controller/CommunityController.php index 5366638..74ee8f1 100644 --- a/src/Controller/CommunityController.php +++ b/src/Controller/CommunityController.php @@ -176,6 +176,43 @@ class CommunityController implements IAuthenticationRequired ]); } + public function deleteCommunity(): ?IContent + { + if (!$this->checkPermission(\Container::$request->query('communitySlug'), true, $community, $ownCommunityMember)) { + return null; + } + + if ($this->transactionRepository->countAllByCommunity($community) > 0) { + return new JsonContent([ + 'error' => ['errorText' => 'There are transactions for this community!'] + ]); + } + + if ($this->eventRepository->countAllByCommunity($community) > 0) { + return new JsonContent([ + 'error' => ['errorText' => 'There are events for this community!'] + ]); + } + + foreach ($this->communityMemberRepository->getAllByCommunity($community) as $communityMember) { + \Container::$persistentDataManager->deleteFromDb($communityMember); + } + + $community->setMainCurrencyId(null); + \Container::$persistentDataManager->saveToDb($community); + + foreach ($this->currencyRepository->getAllByCommunity($community) as $currency) { + foreach ($this->currencyExchangeRatesRepository->getAllByCurrency($currency) as $currencyExchangeRate) { + \Container::$persistentDataManager->deleteFromDb($currencyExchangeRate); + } + \Container::$persistentDataManager->deleteFromDb($currency); + } + + \Container::$persistentDataManager->deleteFromDb($community); + + return new JsonContent(['success' => true]); + } + public function getMembersEdit(): ?IContent { if (!$this->checkPermission(\Container::$request->query('communitySlug'), true, $community, $ownCommunityMember)) {