From 70a1fb8dfce0e74c36fc0a77886d9f6a73aaa2f1 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 14 Apr 2019 19:47:06 +0200 Subject: [PATCH] Add unit tests and fix templates --- Admin/Routes/Web/Api.php | 11 +++++++++ Controller/ApiController.php | 41 ++++++++++++++++++++++++++++++++ Controller/BackendController.php | 9 ------- Controller/ConsoleController.php | 1 - 4 files changed, 52 insertions(+), 10 deletions(-) diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index 76db069..8d47c86 100644 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -89,6 +89,17 @@ return [ ], ], ], + '^.*/admin/find/accgrp.*$' => [ + [ + 'dest' => '\Modules\Admin\Controller\ApiController:apiAccountGroupFind', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => ApiController::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::ACCOUNT, + ], + ], + ], '^.*/admin/account$' => [ [ diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 99a25bd..5e1f26e 100644 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -315,6 +315,47 @@ final class ApiController extends Controller ); } + /** + * Api method to find accounts and or groups + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiAccountGroupFind(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + $accounts = \array_values(AccountMapper::find((string) ($request->getData('search') ?? ''))); + $groups = \array_values(GroupMapper::find((string) ($request->getData('search') ?? ''))); + $data = []; + + foreach ($accounts as $account) { + $temp = $account->jsonSerialize(); + $temp['type_prefix'] = 'a'; + $temp['type_name'] = 'Account'; + + $data[] = $temp; + } + + foreach ($groups as $group) { + $temp = $group->jsonSerialize(); + $temp['name'] = [$temp['name']]; + $temp['email'] = '---'; + $temp['type_prefix'] = 'g'; + $temp['type_name'] = 'Group'; + + $data[] = $temp; + } + + $response->getHeader()->set('Content-Type', MimeType::M_JSON, true); + $response->set($request->getUri()->__toString(), $data); + } + /** * Method to validate account creation from request * diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 0f480e6..ff0bd72 100644 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -96,7 +96,6 @@ final class BackendController extends Controller public function viewEmptyCommand(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/Admin/Theme/Console/empty-command'); return $view; @@ -116,7 +115,6 @@ final class BackendController extends Controller public function viewAccountList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/Admin/Theme/Backend/accounts-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000104001, $request, $response)); $view->setData('list:elements', AccountMapper::getNewest(50, null, RelationType::NONE)); @@ -139,7 +137,6 @@ final class BackendController extends Controller public function viewAccountSettings(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/Admin/Theme/Backend/accounts-single'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000104001, $request, $response)); $view->addData('account', AccountMapper::get((int) $request->getData('id'), RelationType::ALL, null, 2)); @@ -174,7 +171,6 @@ final class BackendController extends Controller public function viewAccountCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/Admin/Theme/Backend/accounts-create'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000104001, $request, $response)); @@ -195,7 +191,6 @@ final class BackendController extends Controller public function viewGroupList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/Admin/Theme/Backend/groups-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000103001, $request, $response)); $view->setData('list:elements', GroupMapper::getAll(RelationType::NONE)); @@ -217,7 +212,6 @@ final class BackendController extends Controller public function viewGroupSettings(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/Admin/Theme/Backend/groups-single'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000103001, $request, $response)); $view->addData('group', GroupMapper::get((int) $request->getData('id'), RelationType::ALL, null, 2)); @@ -255,7 +249,6 @@ final class BackendController extends Controller public function viewGroupCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/Admin/Theme/Backend/groups-create'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000103001, $request, $response)); @@ -279,7 +272,6 @@ final class BackendController extends Controller public function viewModuleList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/Admin/Theme/Backend/modules-list'); return $view; @@ -299,7 +291,6 @@ final class BackendController extends Controller public function viewModuleProfile(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/Admin/Theme/Backend/modules-single'); $id = $request->getData('id') ?? ''; diff --git a/Controller/ConsoleController.php b/Controller/ConsoleController.php index 38b9d09..14ac1d8 100644 --- a/Controller/ConsoleController.php +++ b/Controller/ConsoleController.php @@ -49,7 +49,6 @@ final class ConsoleController extends Controller public function viewEmptyCommand(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/Admin/Theme/Console/empty-command'); return $view;