Implement admin controller api test

This commit is contained in:
Dennis Eichhorn 2017-12-01 23:53:04 +01:00
parent bc8a35e0c6
commit 3b32899ce1
3 changed files with 51 additions and 21 deletions

View File

@ -47,8 +47,8 @@ class Installer extends InstallerAbstract
'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'group` ( 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'group` (
`group_id` int(11) NOT NULL AUTO_INCREMENT, `group_id` int(11) NOT NULL AUTO_INCREMENT,
`group_name` varchar(50) NOT NULL, `group_name` varchar(50) NOT NULL,
`group_status` int(11) NOT NULL, `group_status` int(3) NOT NULL,
`group_desc` varchar(100) DEFAULT NULL, `group_desc` varchar(255) DEFAULT NULL,
`group_created` datetime DEFAULT NULL, `group_created` datetime DEFAULT NULL,
PRIMARY KEY (`group_id`) PRIMARY KEY (`group_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'

View File

@ -320,7 +320,10 @@ class Controller extends ModuleAbstract implements WebInterface
public function apiSettingsSet(RequestAbstract $request, ResponseAbstract $response, $data = null) public function apiSettingsSet(RequestAbstract $request, ResponseAbstract $response, $data = null)
{ {
$success = $this->app->appSettings->set((string) $request->getData('settings'), true); $success = $this->app->appSettings->set(
json_decode((string) $request->getData('settings'), true),
true
);
$response->set($request->__toString(), $success); $response->set($request->__toString(), $success);
} }
@ -331,6 +334,18 @@ class Controller extends ModuleAbstract implements WebInterface
$response->set($request->__toString(), $group->jsonSerialize()); $response->set($request->__toString(), $group->jsonSerialize());
} }
public function apiGroupSet(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$group = GroupMapper::get((int) $request->getData('id'));
$group->setName((string) ($request->getData('name') ?? $group->getName()));
$group->setDescription((string) ($request->getData('description') ?? $group->getDescription()));
GroupMapper::update($group);
$response->set($request->__toString(), $group->jsonSerialize());
}
private function validateGroupCreate(RequestAbstract $request) : array private function validateGroupCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
@ -358,14 +373,15 @@ class Controller extends ModuleAbstract implements WebInterface
$group = $this->createGroupFromRequest($request); $group = $this->createGroupFromRequest($request);
GroupMapper::create($group); GroupMapper::create($group);
$response->set('group', $group->__toString()); $response->set($request->__toString(), $group->jsonSerialize());
} }
private function createGroupFromRequest(RequestAbstract $request) : Group private function createGroupFromRequest(RequestAbstract $request) : Group
{ {
$group = new Group(); $group = new Group();
$group->setCreatedBy($request->getHeader()->getAccount());
$group->setName((string) ($request->getData('name') ?? '')); $group->setName((string) ($request->getData('name') ?? ''));
$group->setStatus((int) $request->getData('status')); $group->setStatus((int) ($request->getData('status') ?? GroupStatus::INACTIVE));
$group->setDescription((string) ($request->getData('description') ?? '')); $group->setDescription((string) ($request->getData('description') ?? ''));
return $group; return $group;
@ -373,15 +389,16 @@ class Controller extends ModuleAbstract implements WebInterface
public function apiGroupDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) public function apiGroupDelete(RequestAbstract $request, ResponseAbstract $response, $data = null)
{ {
$status = GroupMapper::delete((int) ($request->getData('id'))); $group = GroupMapper::get((int) $request->getData('id'));
$status = GroupMapper::delete($group);
$response->set($request->__toString(), $status); $response->set($request->__toString(), $status);
} }
public function apiAccountGet(RequestAbstract $request, ResponseAbstract $response, $data = null) public function apiAccountGet(RequestAbstract $request, ResponseAbstract $response, $data = null)
{ {
$response->getHeader()->set('Content-Type', MimeType::M_JSON . '; charset=utf-8', true); $account = AccountMapper::get((int) $request->getData('id'));
$response->set($request->__toString(), AccountMapper::getByRequest($request)); $response->set($request->__toString(), $account->jsonSerialize());
} }
public function apiAccountFind(RequestAbstract $request, ResponseAbstract $response, $data = null) public function apiAccountFind(RequestAbstract $request, ResponseAbstract $response, $data = null)
@ -392,9 +409,10 @@ class Controller extends ModuleAbstract implements WebInterface
private function validateAccountCreate(RequestAbstract $request) : array private function validateAccountCreate(RequestAbstract $request) : array
{ {
// todo: validate email correctness
$val = []; $val = [];
if ( if (
($val['name'] = empty($request->getData('name'))) ($val['login'] = empty($request->getData('login')))
|| ($val['name1'] = empty($request->getData('name1'))) || ($val['name1'] = empty($request->getData('name1')))
|| ($val['type'] = !AccountType::isValidValue((int) $request->getData('type'))) || ($val['type'] = !AccountType::isValidValue((int) $request->getData('type')))
|| ($val['status'] = !AccountStatus::isValidValue((int) $request->getData('status'))) || ($val['status'] = !AccountStatus::isValidValue((int) $request->getData('status')))
@ -422,33 +440,40 @@ class Controller extends ModuleAbstract implements WebInterface
private function createAccountFromRequest(RequestAbstract $request) : Account private function createAccountFromRequest(RequestAbstract $request) : Account
{ {
$account = new Account(); $account = new Account();
$account->setStatus((int) ($request->getData('status'))); $account->setStatus((int) ($request->getData('status') ?? AccountStatus::INACTIVE));
$account->setType((int) ($request->getData('type'))); $account->setType((int) ($request->getData('type') ?? AccountType::USER));
$account->setName((string) ($request->getData('name'))); $account->setName((string) ($request->getData('login') ?? ''));
$account->setName1((string) ($request->getData('name1'))); $account->setName1((string) ($request->getData('name1') ?? ''));
$account->setName2((string) ($request->getData('name2'))); $account->setName2((string) ($request->getData('name2') ?? ''));
$account->setName3((string) ($request->getData('name3'))); $account->setName3((string) ($request->getData('name3') ?? ''));
$account->setEmail((string) ($request->getData('email'))); $account->setEmail((string) ($request->getData('email') ?? ''));
$account->generatePassword((string) ($request->getData('password'))); $account->generatePassword((string) ($request->getData('password') ?? ''));
return $account; return $account;
} }
public function apiAccountDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) public function apiAccountDelete(RequestAbstract $request, ResponseAbstract $response, $data = null)
{ {
$status = AccountMapper::delete((int) ($request->getData('id'))); $account = AccountMapper::get((int) ($request->getData('id')));
$status = AccountMapper::delete($account);
$response->set('account', $status); $response->set($request->__toString(), $status);
} }
public function apiAccountUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) public function apiAccountUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null)
{ {
$account = AccountMapper::get((int) ($request->getData('id'))); $account = AccountMapper::get((int) ($request->getData('id')));
$account->setName((string) ($request->getData('name'))); $account->setName((string) ($request->getData('login') ?? $account->getName()));
$account->setName1((string) ($request->getData('name1') ?? $account->getName1()));
$account->setName2((string) ($request->getData('name2') ?? $account->getName2()));
$account->setName3((string) ($request->getData('name3') ?? $account->getName3()));
$account->setEmail((string) ($request->getData('email') ?? $account->getEmail()));
$account->setStatus((int) ($request->getData('status') ?? $account->getStatus()));
$account->setType((int) ($request->getData('type') ?? $account->getType()));
$status = AccountMapper::update($account); $status = AccountMapper::update($account);
$response->set('account', ['status' => $status, 'account' => $account->jsonSerialize()]); $response->set($request->__toString(), $account->jsonSerialize());
} }
public function apiModuleStatusUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) public function apiModuleStatusUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null)

View File

@ -76,4 +76,9 @@ class Group extends \phpOMS\Account\Group
{ {
return $this->createdBy; return $this->createdBy;
} }
public function setCreatedBy($createdBy) /* : void */
{
$this->createdBy = $createdBy;
}
} }