diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index d94acdb..9601485 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\Profile\Models\PermissionState; -use Modules\Profile\Controller; +use Modules\Profile\Controller\ApiController; return [ '^.*/api/profile.*$' => [ [ - 'dest' => '\Modules\Profile\Controller:apiProfileCreate', + 'dest' => '\Modules\Profile\Controller\ApiController:apiProfileCreate', 'verb' => RouteVerb::PUT, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => ApiController::MODULE_NAME, 'type' => PermissionType::CREATE, 'state' => PermissionState::PROFILE, ], diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index e588c07..27ce955 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\Profile\Models\PermissionState; -use Modules\Profile\Controller; +use Modules\Profile\Controller\BackendController; return [ '^.*/backend/profile.*$' => [ [ - 'dest' => '\Modules\Profile\Controller:setupProfileStyles', + 'dest' => '\Modules\Profile\Controller\BackendController:setupProfileStyles', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, 'state' => PermissionState::PROFILE, ], @@ -19,10 +19,10 @@ return [ ], '^.*/backend/profile/list.*$' => [ [ - 'dest' => '\Modules\Profile\Controller:viewProfileList', + 'dest' => '\Modules\Profile\Controller\BackendController:viewProfileList', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, 'state' => PermissionState::PROFILE, ], @@ -30,10 +30,10 @@ return [ ], '^.*/backend/profile/single.*$' => [ [ - 'dest' => '\Modules\Profile\Controller:viewProfileSingle', + 'dest' => '\Modules\Profile\Controller\BackendController:viewProfileSingle', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, 'state' => PermissionState::PROFILE, ], @@ -41,10 +41,10 @@ return [ ], '^.*/backend/admin/module/settings/profile/settings.*$' => [ [ - 'dest' => '\Modules\Profile\Controller:viewProfileAdminSettings', + 'dest' => '\Modules\Profile\Controller\BackendController:viewProfileAdminSettings', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, 'state' => PermissionState::PROFILE, ], @@ -52,10 +52,10 @@ return [ ], '^.*/backend/admin/module/settings/profile/create.*$' => [ [ - 'dest' => '\Modules\Profile\Controller:viewProfileAdminCreate', + 'dest' => '\Modules\Profile\Controller\BackendController:viewProfileAdminCreate', 'verb' => RouteVerb::GET, 'permission' => [ - 'module' => Controller::MODULE_NAME, + 'module' => BackendController::MODULE_NAME, 'type' => PermissionType::READ, 'state' => PermissionState::PROFILE, ], diff --git a/Controller/ApiController.php b/Controller/ApiController.php new file mode 100644 index 0000000..6cef55e --- /dev/null +++ b/Controller/ApiController.php @@ -0,0 +1,101 @@ +createProfilesFromRequest($request); + $created = []; + + foreach ($profiles as $profile) { + $this->app->eventManager->trigger('PRE:Module:Admin-profile-create', '', $profile); + ProfileMapper::create($profile); + $this->app->eventManager->trigger('POST:Module:Admin-profile-create', '', $profile); + + $created[] = $profile->jsonSerialize(); + } + + $response->set($request->getUri()->__toString(), [ + 'status' => NotificationLevel::OK, + 'title' => 'Profile(s)', + 'message' => 'Profile(s) successfully created.', + 'response' => $created + ]); + } + + /** + * Method to create profile from request. + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function createProfilesFromRequest(RequestAbstract $request) : array + { + $profiles = []; + $accounts = $request->getDataList('iaccount-idlist'); + + foreach ($accounts as $account) { + $account = (int) \trim($account); + $isInDb = ProfileMapper::getFor($account, 'account'); + + if ($isInDb->getId() !== 0) { + $profiles[] = $isInDb; + continue; + } + + $profiles[] = new Profile(AccountMapper::get($account)); + } + + return $profiles; + } +} diff --git a/Controller.php b/Controller/BackendController.php similarity index 70% rename from Controller.php rename to Controller/BackendController.php index 18bf15b..9d14d1f 100644 --- a/Controller.php +++ b/Controller/BackendController.php @@ -12,7 +12,7 @@ */ declare(strict_types=1); -namespace Modules\Profile; +namespace Modules\Profile\Controller; use Modules\Profile\Models\Profile; use Modules\Profile\Models\ProfileMapper; @@ -36,58 +36,8 @@ use phpOMS\Asset\AssetType; * @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 = 'Profile'; - - /** - * Module id. - * - * @var int - * @since 1.0.0 - */ - public const MODULE_ID = 1000300000; - - /** - * 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 @@ -215,65 +165,4 @@ final class Controller extends ModuleAbstract implements WebInterface return $view; } - - /** - * @param RequestAbstract $request Request - * @param ResponseAbstract $response Response - * @param mixed $data Generic data - * - * @return void - * - * @api - * - * @since 1.0.0 - */ - public function apiProfileCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void - { - $profiles = $this->createProfilesFromRequest($request); - $created = []; - - foreach ($profiles as $profile) { - $this->app->eventManager->trigger('PRE:Module:Admin-profile-create', '', $profile); - ProfileMapper::create($profile); - $this->app->eventManager->trigger('POST:Module:Admin-profile-create', '', $profile); - - $created[] = $profile->jsonSerialize(); - } - - $response->set($request->getUri()->__toString(), [ - 'status' => NotificationLevel::OK, - 'title' => 'Profile(s)', - 'message' => 'Profile(s) successfully created.', - 'response' => $created - ]); - } - - /** - * Method to create profile from request. - * - * @param RequestAbstract $request Request - * - * @return array - * - * @since 1.0.0 - */ - private function createProfilesFromRequest(RequestAbstract $request) : array - { - $profiles = []; - $accounts = $request->getDataList('iaccount-idlist'); - - foreach ($accounts as $account) { - $account = (int) \trim($account); - $isInDb = ProfileMapper::getFor($account, 'account'); - - if ($isInDb->getId() !== 0) { - $profiles[] = $isInDb; - continue; - } - - $profiles[] = new Profile(AccountMapper::get($account)); - } - - return $profiles; - } } diff --git a/Controller/Controller.php b/Controller/Controller.php new file mode 100644 index 0000000..0903af9 --- /dev/null +++ b/Controller/Controller.php @@ -0,0 +1,90 @@ +