Rest changes

This commit is contained in:
Dennis Eichhorn 2016-06-11 20:25:55 +02:00
parent 0843a87a1b
commit befbe5dc3e
9 changed files with 221 additions and 13 deletions

View File

@ -57,4 +57,53 @@ return [
'verb' => RouteVerb::GET,
],
],
'^.*/api/admin/settings.*$' => [
[
'dest' => '\Modules\Admin\Controller:apiSettingsSet',
'verb' => RouteVerb::SET,
],
[
'dest' => '\Modules\Admin\Controller:apiSettingsGet',
'verb' => RouteVerb::GET,
],
],
'^.*/api/admin/group.*$' => [
[
'dest' => '\Modules\Admin\Controller:apiGroupCreate',
'verb' => RouteVerb::PUT,
],
[
'dest' => '\Modules\Admin\Controller:apiGroupUpdate',
'verb' => RouteVerb::SET,
],
[
'dest' => '\Modules\Admin\Controller:apiGroupDelete',
'verb' => RouteVerb::DELETE,
],
[
'dest' => '\Modules\Admin\Controller:apiGroupGet',
'verb' => RouteVerb::GET,
],
],
'^.*/api/admin/account.*$' => [
[
'dest' => '\Modules\Admin\Controller:apiAccountCreate',
'verb' => RouteVerb::PUT,
],
[
'dest' => '\Modules\Admin\Controller:apiAccountUpdate',
'verb' => RouteVerb::SET,
],
[
'dest' => '\Modules\Admin\Controller:apiAccountDelete',
'verb' => RouteVerb::DELETE,
],
[
'dest' => '\Modules\Admin\Controller:apiAccountGet',
'verb' => RouteVerb::GET,
],
],
];

View File

@ -15,8 +15,10 @@
*/
namespace Modules\Admin;
use Modules\Admin\Models\Account;
use Modules\Admin\Models\AccountMapper;
use Modules\Admin\Models\GroupMapper;
use Modules\Admin\Models\Group;
use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract;
use phpOMS\Module\ModuleAbstract;
@ -133,8 +135,7 @@ class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/Admin/Theme/Backend/accounts-list');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000104001, $request, $response));
$accountMapper = new AccountMapper($this->app->dbPool->get());
$view->setData('list:elements', $accountMapper->getAll());
$view->setData('list:elements', AccountMapper::getAll());
$view->setData('list:count', 1);
return $view;
@ -156,8 +157,7 @@ class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/Admin/Theme/Backend/accounts-single');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000104001, $request, $response));
$accountMapper = new AccountMapper($this->app->dbPool->get());
$view->addData('account', $accountMapper->get((int) $request->getData('id')));
$view->addData('account', AccountMapper::get((int) $request->getData('id')));
return $view;
}
@ -197,8 +197,7 @@ class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/Admin/Theme/Backend/groups-list');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000103001, $request, $response));
$groupMapper = new GroupMapper($this->app->dbPool->get());
$view->setData('list:elements', $groupMapper->getAll());
$view->setData('list:elements', GroupMapper::getAll());
return $view;
}
@ -219,8 +218,7 @@ class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/Admin/Theme/Backend/groups-single');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000103001, $request, $response));
$groupMapper = new GroupMapper($this->app->dbPool->get());
$view->addData('group', $groupMapper->get((int) $request->getData('id')));
$view->addData('group', GroupMapper::get((int) $request->getData('id')));
return $view;
}
@ -280,11 +278,82 @@ class Controller extends ModuleAbstract implements WebInterface
return $view;
}
public function apiAccountList(RequestAbstract $request, ResponseAbstract $response, $data = null)
public function apiSettingsGet(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
// todo: instead of returning dom, maybe only return data and let ui handle presentation?!!?!?!?!!
$response->set('settings', $this->app->appSettings->get($request->getData('id')));
}
$mapper = new AccountMapper($this->app->dbPool->get());
public function apiSettingsSet(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$this->app->appSettings->set([$request->getData('setting') => $request->getData('value')], true);
}
public function apiGroupGet(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$response->set('group', GroupMapper::getByRequest($request));
}
public function apiGroupCreate(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$group = new Group();
$group->setName($request->getData('name'));
$group->setDescription($request->getData('desc'));
GroupMapper::create($group);
$response->set('group', $group->__toString());
}
public function apiGroupDelete(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$status = GroupMapper::delete($request->getData('id'));
$response->set('group', $status);
}
public function apiGroupUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$group = GroupMapper::get($request->getData('id'));
$group->setName($request->getData('name'));
$group->setDescription($request->getData('desc'));
$status = GroupMapper::update($group);
$response->set('group', ['status' => $status, 'group' => $group->__toString()]);
}
public function apiAccountGet(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$response->set('account', AccountMapper::getByRequest($request));
}
public function apiAccountCreate(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$account = new Account();
$account->setName($request->getData('name'));
$account->setDescription($request->getData('desc'));
AccountMapper::create($account);
$response->set('account', $account->__toString());
}
public function apiAccountDelete(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$status = AccountMapper::delete($request->getData('id'));
$response->set('account', $status);
}
public function apiAccountUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$account = AccountMapper::get($request->getData('id'));
$account->setName($request->getData('name'));
$account->setDescription($request->getData('desc'));
$status = AccountMapper::update($account);
$response->set('account', ['status' => $status, 'account' => $account->__toString()]);
}
}

View File

@ -16,6 +16,7 @@
namespace Modules\Admin\Models;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\RelationType;
class AccountMapper extends DataMapperAbstract
{
@ -64,4 +65,21 @@ class AccountMapper extends DataMapperAbstract
* @since 1.0.0
*/
protected static $createdAt = 'account_created_at';
/**
* Get object.
*
* @param mixed $primaryKey Key
* @param int $relations Load relations
* @param mixed $fill Object to fill
*
* @return Account
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public static function get($primaryKey, int $relations = RelationType::ALL, $fill = null)
{
return parent::get((int) $primaryKey, $relations, $fill);
}
}

View File

@ -17,8 +17,22 @@ namespace Modules\Admin\Models;
class Group extends \phpOMS\Account\Group
{
/**
* Created at.
*
* @var \DateTime
* @since 1.0.0
*/
protected $createdAt = null;
/**
* Created by.
*
* @var int
* @since 1.0.0
*/
protected $createdBy = 0;
public function getCreatedAt() : \DateTime
{
return $this->createdAt ?? new \DateTime('NOW');

View File

@ -16,6 +16,7 @@
namespace Modules\Admin\Models;
use phpOMS\DataStorage\Database\DataMapperAbstract;
use phpOMS\DataStorage\Database\RelationType;
class GroupMapper extends DataMapperAbstract
{
@ -56,4 +57,21 @@ class GroupMapper extends DataMapperAbstract
* @since 1.0.0
*/
protected static $createdAt = 'group_created';
/**
* Get object.
*
* @param mixed $primaryKey Key
* @param int $relations Load relations
* @param mixed $fill Object to fill
*
* @return Group
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public static function get($primaryKey, int $relations = RelationType::ALL, $fill = null)
{
return parent::get((int) $primaryKey, $relations, $fill);
}
}

20
Models/NullAccount.php Normal file
View File

@ -0,0 +1,20 @@
<?php
/**
* Orange Management
*
* PHP Version 7.0
*
* @category TBD
* @package TBD
* @author OMS Development Team <dev@oms.com>
* @author Dennis Eichhorn <d.eichhorn@oms.com>
* @copyright 2013 Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link http://orange-management.com
*/
namespace Modules\Admin\Models;
class NullAccount extends Account
{
}

20
Models/NullGroup.php Normal file
View File

@ -0,0 +1,20 @@
<?php
/**
* Orange Management
*
* PHP Version 7.0
*
* @category TBD
* @package TBD
* @author OMS Development Team <dev@oms.com>
* @author Dennis Eichhorn <d.eichhorn@oms.com>
* @copyright 2013 Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link http://orange-management.com
*/
namespace Modules\Admin\Models;
class NullGroup extends Group
{
}

View File

@ -22,7 +22,7 @@ echo $this->getData('nav')->render(); ?>
<section class="box w-33 floatLeft">
<header><h1><?= $this->l11n->lang['Admin']['Group'] ?></h1></header>
<div class="inner">
<form action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/group'); ?>" method="post">
<form id="group-create" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/group'); ?>" method="<?= \phpOMS\Message\Http\RequestMethod::PUT; ?>">
<table class="layout wf-100">
<tbody>
<tr><td><label for="iGname"><?= $this->l11n->lang['Admin']['Name'] ?></label>

View File

@ -22,7 +22,7 @@ echo $this->getData('nav')->render(); ?>
<section class="box w-33 floatLeft">
<header><h1><?= $this->l11n->lang['Admin']['Group'] ?></h1></header>
<div class="inner">
<form action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/group'); ?>" method="post">
<form id="group-create" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/admin/group'); ?>" method="<?= \phpOMS\Message\Http\RequestMethod::PUT; ?>">
<table class="layout wf-100">
<tbody>
<tr><td><label for="iGname"><?= $this->l11n->lang['Admin']['Name'] ?></label>