From 9561a162fa56aba7d80895112b71d1579972a36f Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Wed, 19 Sep 2018 21:34:04 +0200 Subject: [PATCH] Split controllers per application --- Admin/Routes/Web/Backend.php | 26 +-- .../ApiController.php | 178 +----------------- Controller/BackendController.php | 160 ++++++++++++++++ Controller/Controller.php | 86 +++++++++ 4 files changed, 261 insertions(+), 189 deletions(-) rename Controller.php => Controller/ApiController.php (53%) create mode 100644 Controller/BackendController.php create mode 100644 Controller/Controller.php diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index 3b825d7..9ee88d4 100644 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -3,15 +3,15 @@ use phpOMS\Router\RouteVerb; use phpOMS\Account\PermissionType; use Modules\QA\Models\PermissionState; -use Modules\QA\Controller; +use Modules\QA\Controller\BackendController; return [ '^.*/backend/qa.*$' => [ [ - 'dest' => '\Modules\QA\Controller:setUpBackend', + 'dest' => '\Modules\QA\Controller\BackendController:setUpBackend', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, 'state' => PermissionState::QA, ], @@ -19,10 +19,10 @@ return [ ], '^.*/backend/qa/dashboard.*$' => [ [ - 'dest' => '\Modules\QA\Controller:viewQADashboard', + 'dest' => '\Modules\QA\Controller\BackendController:viewQADashboard', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, 'state' => PermissionState::QA, ], @@ -30,10 +30,10 @@ return [ ], '^.*/backend/qa/badge/list.*$' => [ [ - 'dest' => '\Modules\QA\Controller:viewQABadgeList', + 'dest' => '\Modules\QA\Controller\BackendController:viewQABadgeList', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, 'state' => PermissionState::BADGE, ], @@ -41,10 +41,10 @@ return [ ], '^.*/backend/qa/badge/single.*$' => [ [ - 'dest' => '\Modules\QA\Controller:viewQABadgeEdit', + 'dest' => '\Modules\QA\Controller\BackendController:viewQABadgeEdit', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, 'state' => PermissionState::BADGE, ], @@ -52,10 +52,10 @@ return [ ], '^.*/backend/qa/question.*$' => [ [ - 'dest' => '\Modules\QA\Controller:viewQADoc', + 'dest' => '\Modules\QA\Controller\BackendController:viewQADoc', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, 'state' => PermissionState::QUESTION, ], @@ -63,10 +63,10 @@ return [ ], '^.*/backend/qa/question/create.*$' => [ [ - 'dest' => '\Modules\QA\Controller:viewQAQuestionCreate', + 'dest' => '\Modules\QA\Controller\BackendController:viewQAQuestionCreate', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::CREATE, 'state' => PermissionState::QUESTION, ], diff --git a/Controller.php b/Controller/ApiController.php similarity index 53% rename from Controller.php rename to Controller/ApiController.php index f70eb07..d65d721 100644 --- a/Controller.php +++ b/Controller/ApiController.php @@ -12,7 +12,7 @@ */ declare(strict_types=1); -namespace Modules\QA; +namespace Modules\QA\Controller; use phpOMS\Message\RequestAbstract; use phpOMS\Message\ResponseAbstract; @@ -32,182 +32,8 @@ use Modules\QA\Models\QABadgeMapper; * @link http://website.orange-management.de * @since 1.0.0 */ -final class Controller extends ModuleAbstract implements WebInterface +class ApiController extends Controller { - - /** - * Module path. - * - * @var string - * @since 1.0.0 - */ - public const MODULE_PATH = __DIR__; - - /** - * Module version. - * - * @var string - * @since 1.0.0 - */ - public const MODULE_VERSION = '1.0.0'; - - /** - * Module name. - * - * @var string - * @since 1.0.0 - */ - public const MODULE_NAME = 'QA'; - - /** - * Module id. - * - * @var int - * @since 1.0.0 - */ - public const MODULE_ID = 1006000000; - - /** - * Providing. - * - * @var string[] - * @since 1.0.0 - */ - protected static $providing = []; - - /** - * Dependencies. - * - * @var string[] - * @since 1.0.0 - */ - protected static $dependencies = [ - ]; - - /** - * @param RequestAbstract $request Request - * @param ResponseAbstract $response Response - * @param mixed $data Generic data - * - * @return void - * - * @since 1.0.0 - * @codeCoverageIgnore - */ - public function setUpBackend(RequestAbstract $request, ResponseAbstract $response, $data = null) : void - { - $head = $response->get('Content')->getData('head'); - $head->addAsset(AssetType::CSS, '/Modules/QA/Theme/Backend/styles.css'); - } - - /** - * @param RequestAbstract $request Request - * @param ResponseAbstract $response Response - * @param mixed $data Generic data - * - * @return \Serializable - * - * @since 1.0.0 - * @codeCoverageIgnore - */ - public function viewQADashboard(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable - { - $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/QA/Theme/Backend/qa-dashboard'); - $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006001001, $request, $response)); - - $list = QAQuestionMapper::getNewest(50); - $view->setData('questions', $list); - - return $view; - } - - /** - * @param RequestAbstract $request Request - * @param ResponseAbstract $response Response - * @param mixed $data Generic data - * - * @return \Serializable - * - * @since 1.0.0 - * @codeCoverageIgnore - */ - public function viewQABadgeList(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable - { - $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/QA/Theme/Backend/qa-tag-list'); - $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006001001, $request, $response)); - - $list = QABadgeMapper::getAll(); - $view->setData('tags', $list); - - return $view; - } - - /** - * @param RequestAbstract $request Request - * @param ResponseAbstract $response Response - * @param mixed $data Generic data - * - * @return \Serializable - * - * @since 1.0.0 - * @codeCoverageIgnore - */ - public function viewQABadgeEdit(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable - { - $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/QA/Theme/Backend/qa-tag-edit'); - $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006001001, $request, $response)); - - $tag = QABadgeMapper::get((int) $request->getData('id')); - $view->setData('tag', $tag); - - return $view; - } - /** - * @param RequestAbstract $request Request - * @param ResponseAbstract $response Response - * @param mixed $data Generic data - * - * @return \Serializable - * - * @since 1.0.0 - * @codeCoverageIgnore - */ - public function viewQADoc(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable - { - $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/QA/Theme/Backend/qa-question'); - $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006001001, $request, $response)); - - $question = QAQuestionMapper::get((int) $request->getData('id')); - $view->addData('question', $question); - - return $view; - } - /** - * @param RequestAbstract $request Request - * @param ResponseAbstract $response Response - * @param mixed $data Generic data - * - * @return \Serializable - * - * @since 1.0.0 - * @codeCoverageIgnore - */ - public function viewQAQuestionCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable - { - $view = new View($this->app, $request, $response); - $view->setTemplate('/Modules/QA/Theme/Backend/qa-question-create'); - $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006001001, $request, $response)); - - $question = QAQuestionMapper::get((int) $request->getData('id')); - $view->addData('question', $question); - - return $view; - } - public function apiQAQuestionCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { if (!empty($val = $this->validateQAQuestionCreate($request))) { diff --git a/Controller/BackendController.php b/Controller/BackendController.php new file mode 100644 index 0000000..8eb845d --- /dev/null +++ b/Controller/BackendController.php @@ -0,0 +1,160 @@ +get('Content')->getData('head'); + $head->addAsset(AssetType::CSS, '/Modules/QA/Theme/Backend/styles.css'); + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewQADashboard(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/QA/Theme/Backend/qa-dashboard'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006001001, $request, $response)); + + $list = QAQuestionMapper::getNewest(50); + $view->setData('questions', $list); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewQABadgeList(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/QA/Theme/Backend/qa-tag-list'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006001001, $request, $response)); + + $list = QABadgeMapper::getAll(); + $view->setData('tags', $list); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewQABadgeEdit(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/QA/Theme/Backend/qa-tag-edit'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006001001, $request, $response)); + + $tag = QABadgeMapper::get((int) $request->getData('id')); + $view->setData('tag', $tag); + + return $view; + } + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewQADoc(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/QA/Theme/Backend/qa-question'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006001001, $request, $response)); + + $question = QAQuestionMapper::get((int) $request->getData('id')); + $view->addData('question', $question); + + return $view; + } + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewQAQuestionCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/QA/Theme/Backend/qa-question-create'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006001001, $request, $response)); + + $question = QAQuestionMapper::get((int) $request->getData('id')); + $view->addData('question', $question); + + return $view; + } +} diff --git a/Controller/Controller.php b/Controller/Controller.php new file mode 100644 index 0000000..1878ff1 --- /dev/null +++ b/Controller/Controller.php @@ -0,0 +1,86 @@ +