From 7290a92d8e0b9db4d333972a44f3f67e27149e0f Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 11 Oct 2024 19:17:40 +0000 Subject: [PATCH] bug fixes --- Admin/Installer.php | 6 +- Admin/Routes/Web/Api.php | 101 +++++++++++++++++++ Controller/ApiController.php | 26 ++--- Theme/Backend/investment-option-view.tpl.php | 4 +- Theme/Backend/investment-view.tpl.php | 4 +- 5 files changed, 121 insertions(+), 20 deletions(-) diff --git a/Admin/Installer.php b/Admin/Installer.php index 227f88c..ff2b77d 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -82,7 +82,7 @@ final class Installer extends InstallerAbstract $request->header->account = 1; $request->setData('name', $type['name'] ?? ''); - $request->setData('title', \reset($type['l11n'])); + $request->setData('content', \reset($type['l11n'])); $request->setData('language', \array_keys($type['l11n'])[0] ?? 'en'); $module->apiAmountTypeCreate($request, $response); @@ -107,9 +107,9 @@ final class Installer extends InstallerAbstract $request = new HttpRequest(); $request->header->account = 1; - $request->setData('title', $l11n); + $request->setData('content', $l11n); $request->setData('language', $language); - $request->setData('type', $amountTypes[$type['name']]['id']); + $request->setData('ref', $amountTypes[$type['name']]['id']); $module->apiAmountTypeL11nCreate($request, $response); } diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index a1c3334..ffcd24b 100644 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -31,6 +31,107 @@ return [ ], ], ], + + '^.*/finance/investment(\?.*$|$)' => [ + [ + 'dest' => '\Modules\InvestmentManagement\Controller\ApiController:apiInvestmentCreate', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::INVESTMENT, + ], + ], + [ + 'dest' => '\Modules\InvestmentManagement\Controller\ApiController:apiInvestmentUpdate', + 'verb' => RouteVerb::SET, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionCategory::INVESTMENT, + ], + ], + ], + + '^.*/finance/investment/option(\?.*$|$)' => [ + [ + 'dest' => '\Modules\InvestmentManagement\Controller\ApiController:apiInvestmentOptionCreate', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::INVESTMENT, + ], + ], + [ + 'dest' => '\Modules\InvestmentManagement\Controller\ApiController:apiInvestmentOptionUpdate', + 'verb' => RouteVerb::SET, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionCategory::INVESTMENT, + ], + ], + ], + + '^.*/finance/investment/option/file(\?.*|$)$' => [ + [ + 'dest' => '\Modules\InvestmentManagement\Controller\ApiController:apiMediaAddToInvestmentObject', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::INVESTMENT, + ], + ], + ], + + '^.*/finance/investment/option/note(\?.*|$)$' => [ + [ + 'dest' => '\Modules\InvestmentManagement\Controller\ApiController:apiNoteCreate', + 'verb' => RouteVerb::PUT, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::INVESTMENT, + ], + ], + [ + 'dest' => '\Modules\InvestmentManagement\Controller\ApiController:apiNoteUpdate', + 'verb' => RouteVerb::SET, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionCategory::INVESTMENT, + ], + ], + [ + 'dest' => '\Modules\InvestmentManagement\Controller\ApiController:apiNoteDelete', + 'verb' => RouteVerb::DELETE, + 'csrf' => true, + 'active' => true, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::DELETE, + 'state' => PermissionCategory::INVESTMENT, + ], + ], + ], + '^.*/finance/investment/attribute(\?.*|$)$' => [ [ 'dest' => '\Modules\InvestmentManagement\Controller\ApiAttributeController:apiInvestmentAttributeCreate', diff --git a/Controller/ApiController.php b/Controller/ApiController.php index e9d4529..a3a4d6c 100644 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -175,7 +175,7 @@ final class ApiController extends Controller } /** @var \Modules\InvestmentManagement\Models\Investment $investment */ - $investment = InvestmentMapper::get()->where('id', (int) $request->getData('investment'))->execute(); + $investment = InvestmentMapper::get()->where('id', (int) $request->getData('ref'))->execute(); $path = $this->createInvestmentDir($investment); $uploaded = new NullCollection(); @@ -227,7 +227,7 @@ final class ApiController extends Controller { $val = []; if (($val['media'] = (!$request->hasData('media') && empty($request->files))) - || ($val['investment'] = !$request->hasData('investment')) + || ($val['ref'] = !$request->hasData('ref')) ) { return $val; } @@ -505,7 +505,7 @@ final class ApiController extends Controller } /** @var \Modules\InvestmentManagement\Models\InvestmentObject $investment */ - $investment = InvestmentObjectMapper::get()->where('id', (int) $request->getData('option'))->execute(); + $investment = InvestmentObjectMapper::get()->where('id', (int) $request->getData('ref'))->execute(); $path = $this->createInvestmentObjectDir($investment); $uploaded = new NullCollection(); @@ -557,7 +557,7 @@ final class ApiController extends Controller { $val = []; if (($val['media'] = (!$request->hasData('media') && empty($request->files))) - || ($val['investment'] = !$request->hasData('investment')) + || ($val['ref'] = !$request->hasData('ref')) ) { return $val; } @@ -579,7 +579,7 @@ final class ApiController extends Controller $type = new BaseStringL11nType(); $type->title = $request->getDataString('name') ?? ''; $type->setL11n( - $request->getDataString('title') ?? '', + $request->getDataString('content') ?? '', ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ); @@ -599,7 +599,7 @@ final class ApiController extends Controller { $val = []; if (($val['name'] = !$request->hasData('name')) - || ($val['title'] = !$request->hasData('title')) + || ($val['content'] = !$request->hasData('content')) ) { return $val; } @@ -646,9 +646,9 @@ final class ApiController extends Controller private function createAmountTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n { $typeL11n = new BaseStringL11n(); - $typeL11n->ref = $request->getDataInt('type') ?? 0; + $typeL11n->ref = $request->getDataInt('ref') ?? 0; $typeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; - $typeL11n->content = $request->getDataString('title') ?? ''; + $typeL11n->content = $request->getDataString('content') ?? ''; return $typeL11n; } @@ -665,8 +665,8 @@ final class ApiController extends Controller private function validateAmountTypeL11nCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = !$request->hasData('title')) - || ($val['type'] = !$request->hasData('type')) + if (($val['content'] = !$request->hasData('content')) + || ($val['ref'] = !$request->hasData('ref')) ) { return $val; } @@ -696,7 +696,7 @@ final class ApiController extends Controller return; } - $request->setData('virtualpath', '/Modules/InvestmentManagement/Investment/' . $request->getData('id'), true); + $request->setData('virtualpath', '/Modules/InvestmentManagement/Investment/' . $request->getData('ref'), true); $this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data); if ($response->header->status !== RequestStatusCode::R_200) { @@ -709,7 +709,7 @@ final class ApiController extends Controller } $model = $responseData['response']; - $this->createModelRelation($request->header->account, (int) $request->getData('id'), $model->id, InvestmentMapper::class, 'notes', '', $request->getOrigin()); + $this->createModelRelation($request->header->account, (int) $request->getData('ref'), $model->id, InvestmentMapper::class, 'notes', '', $request->getOrigin()); } /** @@ -724,7 +724,7 @@ final class ApiController extends Controller private function validateNoteCreate(RequestAbstract $request) : array { $val = []; - if (($val['id'] = !$request->hasData('id')) + if (($val['ref'] = !$request->hasData('ref')) ) { return $val; } diff --git a/Theme/Backend/investment-option-view.tpl.php b/Theme/Backend/investment-option-view.tpl.php index 0237cf0..175790f 100644 --- a/Theme/Backend/investment-option-view.tpl.php +++ b/Theme/Backend/investment-option-view.tpl.php @@ -137,12 +137,12 @@ $isNew = $option->id === 0; request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>>
- data['note']->render('option-note', 'notes', $option->notes); ?> + data['note']->render('option-note', 'notes', $option->notes, '{/api}finance/investment/option/note?csrf={$CSRF}', (string) $option->id); ?>
request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>>
- data['media-upload']->render('option-file', 'files', '', $option->files); ?> + data['media-upload']->render('option-file', 'files', '', $option->files, '{/api}finance/investment/option/file?csrf={$CSRF}', (string) $option->id); ?>
diff --git a/Theme/Backend/investment-view.tpl.php b/Theme/Backend/investment-view.tpl.php index bb64474..ddd7c8c 100644 --- a/Theme/Backend/investment-view.tpl.php +++ b/Theme/Backend/investment-view.tpl.php @@ -131,12 +131,12 @@ echo $this->data['nav']->render(); ?> request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>>
- data['media-upload']->render('investment-file', 'files', '', $investment->files); ?> + data['media-upload']->render('investment-file', 'files', '', $investment->files, '{/api}finance/investment/file?csrf={$CSRF}', (string) $investment->id); ?>
request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>>
- data['note']->render('investment-notes', '', $investment->notes); ?> + data['note']->render('investment-notes', '', $investment->notes, '{/api}finance/investment/note?csrf={$CSRF}', (string) $investment->id); ?>
request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>>