merge new and edit methods in CommunityController
All checks were successful
rvr-nextgen/pipeline/pr-master This commit looks good
All checks were successful
rvr-nextgen/pipeline/pr-master This commit looks good
This commit is contained in:
parent
a021aff92c
commit
49fe85dcde
@ -85,35 +85,26 @@ class CommunityController implements IAuthenticationRequired
|
||||
]);
|
||||
}
|
||||
|
||||
public function newMember(): ?IContent
|
||||
public function saveMember(): ?IContent
|
||||
{
|
||||
if (!$this->checkPermission(\Container::$request->query('communityId'), true, $community, $ownCommunityMember)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$user = $this->userRepository->getById(\Container::$request->post('user_id'));
|
||||
|
||||
$communityMember = new CommunityMember();
|
||||
$communityMember->setCommunity($community);
|
||||
$communityMember->setUser($user);
|
||||
$communityMember->setOwner((bool)\Container::$request->post('owner'));
|
||||
\Container::$persistentDataManager->saveToDb($communityMember);
|
||||
|
||||
return new JsonContent(['success' => true]);
|
||||
}
|
||||
|
||||
public function editMember(): ?IContent
|
||||
{
|
||||
if (!$this->checkPermission(\Container::$request->query('communityId'), true, $community, $ownCommunityMember)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$communityMember = $this->communityMemberRepository->getById(\Container::$request->query('community_member_id'));
|
||||
if ($communityMember->getUserId() === \Container::$request->user()->getUniqueId()) {
|
||||
$communityMemberId = \Container::$request->query('community_member_id');
|
||||
if ($communityMemberId) {
|
||||
$communityMember = $this->communityMemberRepository->getById($communityMemberId);
|
||||
if ($communityMember->getUserId() === $ownCommunityMember->getUserId()) {
|
||||
return new JsonContent([
|
||||
'error' => ['errorText' => 'Own user cannot be edited.']
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
$user = $this->userRepository->getById(\Container::$request->post('user_id'));
|
||||
$communityMember = new CommunityMember();
|
||||
$communityMember->setCommunity($community);
|
||||
$communityMember->setUser($user);
|
||||
}
|
||||
|
||||
$communityMember->setOwner((bool)\Container::$request->post('owner'));
|
||||
\Container::$persistentDataManager->saveToDb($communityMember);
|
||||
@ -151,7 +142,7 @@ class CommunityController implements IAuthenticationRequired
|
||||
]);
|
||||
}
|
||||
|
||||
public function newCurrency(): ?IContent
|
||||
public function saveCurrency(): ?IContent
|
||||
{
|
||||
if (!$this->checkPermission(\Container::$request->query('communityId'), true, $community, $ownCommunityMember)) {
|
||||
return null;
|
||||
@ -165,15 +156,21 @@ class CommunityController implements IAuthenticationRequired
|
||||
]);
|
||||
}
|
||||
|
||||
$currencyId = \Container::$request->query('currency_id');
|
||||
if ($currencyId){
|
||||
$currency = $this->currencyRepository->getById($currencyId);
|
||||
} else {
|
||||
$currency = new Currency();
|
||||
$currency->setCommunity($community);
|
||||
}
|
||||
|
||||
$existingCurrency = $this->currencyRepository->getByCommunityAndCurrencyCode($community, $code);
|
||||
if ($existingCurrency !== null) {
|
||||
if ($existingCurrency !== null && $currency->getId() !== $existingCurrency->getId()) {
|
||||
return new JsonContent([
|
||||
'error' => ['errorText' => 'A currency with the same code exists for this community.']
|
||||
]);
|
||||
}
|
||||
|
||||
$currency = new Currency();
|
||||
$currency->setCommunity($community);
|
||||
$currency->setCode($code);
|
||||
$currency->setRoundDigits($roundDigits);
|
||||
\Container::$persistentDataManager->saveToDb($currency);
|
||||
@ -181,20 +178,6 @@ class CommunityController implements IAuthenticationRequired
|
||||
return new JsonContent(['success' => true]);
|
||||
}
|
||||
|
||||
public function editCurrency(): ?IContent
|
||||
{
|
||||
if (!$this->checkPermission(\Container::$request->query('communityId'), true, $community, $ownCommunityMember)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$currency = $this->currencyRepository->getById(\Container::$request->query('currency_id'));
|
||||
$currency->setCode(\Container::$request->post('code'));
|
||||
$currency->setRoundDigits((int)\Container::$request->post('round_digits'));
|
||||
\Container::$persistentDataManager->saveToDb($currency);
|
||||
|
||||
return new JsonContent(['success' => true]);
|
||||
}
|
||||
|
||||
public function deleteCurrency(): ?IContent
|
||||
{
|
||||
if (!$this->checkPermission(\Container::$request->query('communityId'), true, $community, $ownCommunityMember)) {
|
||||
@ -228,7 +211,7 @@ class CommunityController implements IAuthenticationRequired
|
||||
]);
|
||||
}
|
||||
|
||||
public function newCurrencyExchangeRate(): ?IContent
|
||||
public function saveCurrencyExchangeRate(): ?IContent
|
||||
{
|
||||
if (!$this->checkPermission(\Container::$request->query('communityId'), true, $community, $ownCommunityMember)) {
|
||||
return null;
|
||||
@ -246,8 +229,14 @@ class CommunityController implements IAuthenticationRequired
|
||||
]);
|
||||
}
|
||||
|
||||
$currencyExchangeRateId = \Container::$request->query('currency_exchange_rate_id');
|
||||
if ($currencyExchangeRateId){
|
||||
$currencyExchangeRate = $this->currencyExchangeRatesRepository->getById($currencyExchangeRateId);
|
||||
} else {
|
||||
$currencyExchangeRate = new CurrencyExchangeRate();
|
||||
$currencyExchangeRate->setCurrency($currency);
|
||||
}
|
||||
|
||||
$currencyExchangeRate->setExchangeRate($exchangeRate);
|
||||
$currencyExchangeRate->setValidFromDate(new DateTime(\Container::$request->post('valid_from')));
|
||||
\Container::$persistentDataManager->saveToDb($currencyExchangeRate);
|
||||
@ -255,26 +244,6 @@ class CommunityController implements IAuthenticationRequired
|
||||
return new JsonContent(['success' => true]);
|
||||
}
|
||||
|
||||
public function editCurrencyExchangeRate(): ?IContent
|
||||
{
|
||||
if (!$this->checkPermission(\Container::$request->query('communityId'), true, $community, $ownCommunityMember)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$currency = $this->currencyRepository->getByCommunityAndCurrencyCode($community, \Container::$request->query('code'));
|
||||
if ($currency === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$currencyExchangeRate = $this->currencyExchangeRatesRepository->getById(\Container::$request->query('currency_exchange_rate_id'));
|
||||
$currencyExchangeRate->setCurrency($currency);
|
||||
$currencyExchangeRate->setExchangeRate((float)\Container::$request->post('exchange_rate'));
|
||||
$currencyExchangeRate->setValidFromDate(new DateTime(\Container::$request->post('valid_from')));
|
||||
\Container::$persistentDataManager->saveToDb($currencyExchangeRate);
|
||||
|
||||
return new JsonContent(['success' => true]);
|
||||
}
|
||||
|
||||
public function deleteCurrencyExchangeRate(): ?IContent
|
||||
{
|
||||
if (!$this->checkPermission(\Container::$request->query('communityId'), true, $community, $ownCommunityMember)) {
|
||||
@ -294,15 +263,6 @@ class CommunityController implements IAuthenticationRequired
|
||||
|
||||
public function saveCommunity(): ?IContent
|
||||
{
|
||||
$communityId = \Container::$request->query('communityId');
|
||||
if ($communityId){
|
||||
if (!$this->checkPermission($communityId, true, $community, $ownCommunityMember)) {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
$community = new Community();
|
||||
}
|
||||
|
||||
$name = \Container::$request->post('name');
|
||||
$currency = \Container::$request->post('currency');
|
||||
if (strlen($name) === 0 || strlen($currency) === 0 || strlen($currency) > 3) {
|
||||
@ -311,11 +271,18 @@ class CommunityController implements IAuthenticationRequired
|
||||
]);
|
||||
}
|
||||
|
||||
$community->setName($name);
|
||||
$community->setCurrency($currency);
|
||||
if (!$communityId) {
|
||||
$communityId = \Container::$request->query('communityId');
|
||||
if ($communityId){
|
||||
if (!$this->checkPermission($communityId, true, $community, $ownCommunityMember)) {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
$community = new Community();
|
||||
$community->setCreatedDate(new DateTime());
|
||||
}
|
||||
|
||||
$community->setName($name);
|
||||
$community->setCurrency($currency);
|
||||
\Container::$persistentDataManager->saveToDb($community);
|
||||
|
||||
if (!$communityId) {
|
||||
|
12
web.php
12
web.php
@ -63,17 +63,17 @@ Container::$routeCollection->group('communities', function (RouteCollection $rou
|
||||
$routeCollection->get('community-edit', 'edit', [CommunityController::class, 'getCommunityEdit']);
|
||||
$routeCollection->post('community-edit-action', 'edit', [CommunityController::class, 'saveCommunity']);
|
||||
$routeCollection->get('community-members', 'members', [CommunityController::class, 'getMembersEdit']);
|
||||
$routeCollection->post('community-members-new', 'newMember', [CommunityController::class, 'newMember']);
|
||||
$routeCollection->post('community-members-edit', 'editMember', [CommunityController::class, 'editMember']);
|
||||
$routeCollection->post('community-members-new', 'newMember', [CommunityController::class, 'saveMember']);
|
||||
$routeCollection->post('community-members-edit', 'editMember', [CommunityController::class, 'saveMember']);
|
||||
$routeCollection->post('community-members-delete', 'deleteMember', [CommunityController::class, 'deleteMember']);
|
||||
$routeCollection->get('community-currencies', 'currencies', [CommunityController::class, 'getCurrenciesEdit']);
|
||||
$routeCollection->post('community-currencies-new', 'newCurrency', [CommunityController::class, 'newCurrency']);
|
||||
$routeCollection->post('community-currencies-edit', 'editCurrency', [CommunityController::class, 'editCurrency']);
|
||||
$routeCollection->post('community-currencies-new', 'newCurrency', [CommunityController::class, 'saveCurrency']);
|
||||
$routeCollection->post('community-currencies-edit', 'editCurrency', [CommunityController::class, 'saveCurrency']);
|
||||
$routeCollection->post('community-currencies-delete', 'deleteCurrency', [CommunityController::class, 'deleteCurrency']);
|
||||
$routeCollection->group('currencyExchangeRates', function (RouteCollection $routeCollection) {
|
||||
$routeCollection->get('community-currency-exchange-rates', '{code}', [CommunityController::class, 'getCurrencyExchangeRates']);
|
||||
$routeCollection->post('community-currency-exchange-rates-new', '{code}/new', [CommunityController::class, 'newCurrencyExchangeRate']);
|
||||
$routeCollection->post('community-currency-exchange-rates-edit', '{code}/edit', [CommunityController::class, 'editCurrencyExchangeRate']);
|
||||
$routeCollection->post('community-currency-exchange-rates-new', '{code}/new', [CommunityController::class, 'saveCurrencyExchangeRate']);
|
||||
$routeCollection->post('community-currency-exchange-rates-edit', '{code}/edit', [CommunityController::class, 'saveCurrencyExchangeRate']);
|
||||
$routeCollection->post('community-currency-exchange-rates-delete', '{code}/delete', [CommunityController::class, 'deleteCurrencyExchangeRate']);
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user