impl. tests and fix validation status code

This commit is contained in:
Dennis Eichhorn 2020-10-06 21:51:40 +02:00
parent fe4f7a60e9
commit 02d41f3140
2 changed files with 20 additions and 14 deletions

View File

@ -1,4 +1,5 @@
<?php <?php
/** /**
* Orange Management * Orange Management
* *
@ -10,6 +11,7 @@
* @version 1.0.0 * @version 1.0.0
* @link https://orange-management.org * @link https://orange-management.org
*/ */
declare(strict_types=1); declare(strict_types=1);
namespace Modules\Comments\Controller; namespace Modules\Comments\Controller;
@ -48,7 +50,7 @@ final class ApiController extends Controller
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function apiCommentListCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiCommentListCreate(RequestAbstract $request, ResponseAbstract $response, $data = null): void
{ {
$commentList = $this->createCommentList(); $commentList = $this->createCommentList();
$this->createModel($request->getHeader()->getAccount(), $commentList, CommentListMapper::class, 'comment_list', $request->getOrigin()); $this->createModel($request->getHeader()->getAccount(), $commentList, CommentListMapper::class, 'comment_list', $request->getOrigin());
@ -61,7 +63,7 @@ final class ApiController extends Controller
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function createCommentList() : CommentList public function createCommentList(): CommentList
{ {
$list = new CommentList(); $list = new CommentList();
// @todo: allow config // @todo: allow config
@ -82,10 +84,11 @@ final class ApiController extends Controller
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function apiCommentCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiCommentCreate(RequestAbstract $request, ResponseAbstract $response, $data = null): void
{ {
if (!empty($val = $this->validateCommentCreate($request))) { if (!empty($val = $this->validateCommentCreate($request))) {
$response->set('news_create', new FormValidation($val)); $response->set('news_create', new FormValidation($val));
$response->getHeader()->setStatusCode(RequestStatusCode::R_400);
return; return;
} }
@ -104,7 +107,7 @@ final class ApiController extends Controller
* *
* @since 1.0.0 * @since 1.0.0
*/ */
private function validateCommentCreate(RequestAbstract $request) : array private function validateCommentCreate(RequestAbstract $request): array
{ {
$val = []; $val = [];
if (($val['title'] = empty($request->getData('title'))) if (($val['title'] = empty($request->getData('title')))
@ -125,7 +128,7 @@ final class ApiController extends Controller
* *
* @since 1.0.0 * @since 1.0.0
*/ */
private function createCommentFromRequest(RequestAbstract $request) : Comment private function createCommentFromRequest(RequestAbstract $request): Comment
{ {
$comment = new Comment(); $comment = new Comment();
$comment->setCreatedBy(new NullAccount($request->getHeader()->getAccount())); $comment->setCreatedBy(new NullAccount($request->getHeader()->getAccount()));
@ -151,7 +154,7 @@ final class ApiController extends Controller
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function apiCommentUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiCommentUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null): void
{ {
$old = clone CommentMapper::get((int) $request->getData('id')); $old = clone CommentMapper::get((int) $request->getData('id'));
$new = $this->updateCommentFromRequest($request); $new = $this->updateCommentFromRequest($request);
@ -168,7 +171,7 @@ final class ApiController extends Controller
* *
* @since 1.0.0 * @since 1.0.0
*/ */
private function updateCommentFromRequest(RequestAbstract $request) : Comment private function updateCommentFromRequest(RequestAbstract $request): Comment
{ {
$comment = CommentMapper::get((int) $request->getData('id')); $comment = CommentMapper::get((int) $request->getData('id'));
$comment->setTitle($request->getData('title') ?? $comment->getTitle()); $comment->setTitle($request->getData('title') ?? $comment->getTitle());
@ -192,7 +195,7 @@ final class ApiController extends Controller
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function apiCommentGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiCommentGet(RequestAbstract $request, ResponseAbstract $response, $data = null): void
{ {
$comment = CommentMapper::get((int) $request->getData('id')); $comment = CommentMapper::get((int) $request->getData('id'));
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Comment', 'Comment successfully returned', $comment); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Comment', 'Comment successfully returned', $comment);
@ -211,7 +214,7 @@ final class ApiController extends Controller
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function apiCommentDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiCommentDelete(RequestAbstract $request, ResponseAbstract $response, $data = null): void
{ {
$comment = CommentMapper::get((int) $request->getData('id')); $comment = CommentMapper::get((int) $request->getData('id'));
$this->deleteModel($request->getHeader()->getAccount(), $comment, CommentMapper::class, 'comment', $request->getOrigin()); $this->deleteModel($request->getHeader()->getAccount(), $comment, CommentMapper::class, 'comment', $request->getOrigin());

View File

@ -1,4 +1,5 @@
<?php <?php
/** /**
* Orange Management * Orange Management
* *
@ -10,6 +11,7 @@
* @version 1.0.0 * @version 1.0.0
* @link https://orange-management.org * @link https://orange-management.org
*/ */
declare(strict_types=1); declare(strict_types=1);
namespace Modules\Comments\Controller; namespace Modules\Comments\Controller;
@ -45,7 +47,7 @@ final class BackendController extends Controller
* @since 1.0.0 * @since 1.0.0
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
public function setUpCommentEditor(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function setUpCommentEditor(RequestAbstract $request, ResponseAbstract $response, $data = null): void
{ {
$head = $response->get('Content')->getData('head'); $head = $response->get('Content')->getData('head');
$head->addAsset(AssetType::JS, '/Modules/Editor/Controller.js', ['type' => 'module']); $head->addAsset(AssetType::JS, '/Modules/Editor/Controller.js', ['type' => 'module']);
@ -63,7 +65,7 @@ final class BackendController extends Controller
* @since 1.0.0 * @since 1.0.0
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
public function viewCommentCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface public function viewCommentCreate(RequestAbstract $request, ResponseAbstract $response, $data = null): RenderableInterface
{ {
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Comments/Theme/Backend/comment-create'); $view->setTemplate('/Modules/Comments/Theme/Backend/comment-create');
@ -84,7 +86,7 @@ final class BackendController extends Controller
* @since 1.0.0 * @since 1.0.0
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
public function viewCommentList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface public function viewCommentList(RequestAbstract $request, ResponseAbstract $response, $data = null): RenderableInterface
{ {
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Comments/Theme/Backend/comment-list'); $view->setTemplate('/Modules/Comments/Theme/Backend/comment-list');
@ -102,7 +104,7 @@ final class BackendController extends Controller
* *
* @since 1.0.0 * @since 1.0.0
*/ */
private function validateCommentCreate(RequestAbstract $request) : array private function validateCommentCreate(RequestAbstract $request): array
{ {
$val = []; $val = [];
if (($val['title'] = empty($request->getData('title'))) if (($val['title'] = empty($request->getData('title')))
@ -127,10 +129,11 @@ final class BackendController extends Controller
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function apiCommentCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiCommentCreate(RequestAbstract $request, ResponseAbstract $response, $data = null): void
{ {
if (!empty($val = $this->validateCommentCreate($request))) { if (!empty($val = $this->validateCommentCreate($request))) {
$response->set('comment_create', new FormValidation($val)); $response->set('comment_create', new FormValidation($val));
$response->getHeader()->setStatusCode(RequestStatusCode::R_400);
return; return;
} }