From 7414a5deb8a240e58a7d188a89962d9504d6af87 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/Api.php | 6 +- Admin/Routes/Web/Backend.php | 18 +-- Controller/ApiController.php | 101 ++++++++++++++++ .../BackendController.php | 111 +----------------- Controller/Controller.php | 93 +++++++++++++++ 5 files changed, 208 insertions(+), 121 deletions(-) create mode 100644 Controller/ApiController.php rename Controller.php => Controller/BackendController.php (64%) create mode 100644 Controller/Controller.php diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index 96027a5..9a9e6f5 100644 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -3,15 +3,15 @@ use phpOMS\Router\RouteVerb; use phpOMS\Account\PermissionType; use Modules\Editor\Models\PermissionState; -use Modules\Editor\Controller; +use Modules\Editor\Controller\ApiController; return [ '^.*/api/editor.*$' => [ [ - 'dest' => '\Modules\Editor\Controller:apiEditorCreate', + 'dest' => '\Modules\Editor\Controller\ApiController:apiEditorCreate', 'verb' => RouteVerb::SET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => ApiController::MODULE_NAME, 'type' => PermissionType::CREATE, 'state' => PermissionState::DOC, ], diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index 736a635..52046aa 100644 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -3,24 +3,24 @@ use phpOMS\Router\RouteVerb; use phpOMS\Account\PermissionType; use Modules\Editor\Models\PermissionState; -use Modules\Editor\Controller; +use Modules\Editor\Controller\BackendController; return [ '^.*/backend/editor/create.*$' => [ [ - 'dest' => '\Modules\Editor\Controller:setUpEditorEditor', + 'dest' => '\Modules\Editor\Controller\BackendController:setUpEditorEditor', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::CREATE, 'state' => PermissionState::DOC, ], ], [ - 'dest' => '\Modules\Editor\Controller:viewEditorCreate', + 'dest' => '\Modules\Editor\Controller\BackendController:viewEditorCreate', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::CREATE, 'state' => PermissionState::DOC, ], @@ -28,10 +28,10 @@ return [ ], '^.*/backend/editor/list.*$' => [ [ - 'dest' => '\Modules\Editor\Controller:viewEditorList', + 'dest' => '\Modules\Editor\Controller\BackendController:viewEditorList', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, 'state' => PermissionState::DOC, ], @@ -39,10 +39,10 @@ return [ ], '^.*/backend/editor/single.*$' => [ [ - 'dest' => '\Modules\Editor\Controller:viewEditorSingle', + 'dest' => '\Modules\Editor\Controller\BackendController:viewEditorSingle', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, 'state' => PermissionState::DOC, ], diff --git a/Controller/ApiController.php b/Controller/ApiController.php new file mode 100644 index 0000000..6896f39 --- /dev/null +++ b/Controller/ApiController.php @@ -0,0 +1,101 @@ +getData('title'))) + || ($val['plain'] = empty($request->getData('plain'))) + ) { + return $val; + } + + return []; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiEditorCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateEditorCreate($request))) { + $response->set('editor_create', new FormValidation($val)); + + return; + } + + $doc = $this->createDocFromRequest($request); + EditorDocMapper::create($doc); + + $response->set('editor', $doc->jsonSerialize()); + } + + /** + * Method to create task from request. + * + * @param RequestAbstract $request Request + * + * @return EditorDoc + * + * @since 1.0.0 + */ + private function createDocFromRequest(RequestAbstract $request) : EditorDoc + { + $doc = new EditorDoc(); + $doc->setTitle((string) ($request->getData('title') ?? '')); + $doc->setPlain((string) ($request->getData('plain') ?? '')); + $doc->setContent(Markdown::parse((string) ($request->getData('plain') ?? ''))); + $doc->setCreatedBy($request->getHeader()->getAccount()); + + return $doc; + } +} diff --git a/Controller.php b/Controller/BackendController.php similarity index 64% rename from Controller.php rename to Controller/BackendController.php index 92df78d..28b893f 100644 --- a/Controller.php +++ b/Controller/BackendController.php @@ -12,7 +12,7 @@ */ declare(strict_types=1); -namespace Modules\Editor; +namespace Modules\Editor\Controller; use Model\Message\FormValidation; use Modules\Navigation\Models\Navigation; @@ -39,58 +39,8 @@ use phpOMS\Utils\Parser\Markdown\Markdown; * @link http://website.orange-management.de * @since 1.0.0 */ -final class Controller extends ModuleAbstract implements WebInterface +class BackendController 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 = 'Editor'; - - /** - * Module id. - * - * @var int - * @since 1.0.0 - */ - public const MODULE_ID = 1005300000; - - /** - * 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 @@ -186,61 +136,4 @@ final class Controller extends ModuleAbstract implements WebInterface return $view; } - - private function validateEditorCreate(RequestAbstract $request) : array - { - $val = []; - if (($val['title'] = empty($request->getData('title'))) - || ($val['plain'] = empty($request->getData('plain'))) - ) { - return $val; - } - - return []; - } - - /** - * @param RequestAbstract $request Request - * @param ResponseAbstract $response Response - * @param mixed $data Generic data - * - * @return void - * - * @api - * - * @since 1.0.0 - */ - public function apiEditorCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void - { - if (!empty($val = $this->validateEditorCreate($request))) { - $response->set('editor_create', new FormValidation($val)); - - return; - } - - $doc = $this->createDocFromRequest($request); - EditorDocMapper::create($doc); - - $response->set('editor', $doc->jsonSerialize()); - } - - /** - * Method to create task from request. - * - * @param RequestAbstract $request Request - * - * @return EditorDoc - * - * @since 1.0.0 - */ - private function createDocFromRequest(RequestAbstract $request) : EditorDoc - { - $doc = new EditorDoc(); - $doc->setTitle((string) ($request->getData('title') ?? '')); - $doc->setPlain((string) ($request->getData('plain') ?? '')); - $doc->setContent(Markdown::parse((string) ($request->getData('plain') ?? ''))); - $doc->setCreatedBy($request->getHeader()->getAccount()); - - return $doc; - } } diff --git a/Controller/Controller.php b/Controller/Controller.php new file mode 100644 index 0000000..d2394ac --- /dev/null +++ b/Controller/Controller.php @@ -0,0 +1,93 @@ +