fix default respone generation

This commit is contained in:
Dennis Eichhorn 2023-07-26 09:18:05 +00:00
parent dded2ee7b9
commit f4a73bfd7b

View File

@ -30,10 +30,8 @@ use Modules\Media\Models\NullMedia;
use Modules\Tag\Models\NullTag; use Modules\Tag\Models\NullTag;
use phpOMS\Message\Http\HttpResponse; use phpOMS\Message\Http\HttpResponse;
use phpOMS\Message\Http\RequestStatusCode; use phpOMS\Message\Http\RequestStatusCode;
use phpOMS\Message\NotificationLevel;
use phpOMS\Message\RequestAbstract; use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract; use phpOMS\Message\ResponseAbstract;
use phpOMS\Model\Message\FormValidation;
use phpOMS\Utils\Parser\Markdown\Markdown; use phpOMS\Utils\Parser\Markdown\Markdown;
/** /**
@ -62,15 +60,15 @@ final class ApiController extends Controller
public function apiKanbanCardCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiKanbanCardCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validateKanbanCardCreate($request))) { if (!empty($val = $this->validateKanbanCardCreate($request))) {
$response->data['kanban_card_create'] = new FormValidation($val); $response->header->status = RequestStatusCode::R_400;
$response->header->status = RequestStatusCode::R_400; $this->createInvalidCreateResponse($request, $response, $val);
return; return;
} }
$card = $this->createKanbanCardFromRequest($request); $card = $this->createKanbanCardFromRequest($request);
$this->createModel($request->header->account, $card, KanbanCardMapper::class, 'card', $request->getOrigin()); $this->createModel($request->header->account, $card, KanbanCardMapper::class, 'card', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Card', 'Card successfully created.', $card); $this->createStandardCreateResponse($request, $response, $card);
} }
/** /**
@ -187,15 +185,15 @@ final class ApiController extends Controller
public function apiKanbanCardCommentCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiKanbanCardCommentCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validateKanbanCardCommentCreate($request))) { if (!empty($val = $this->validateKanbanCardCommentCreate($request))) {
$response->data['kanban_comment_create'] = new FormValidation($val); $response->header->status = RequestStatusCode::R_400;
$response->header->status = RequestStatusCode::R_400; $this->createInvalidCreateResponse($request, $response, $val);
return; return;
} }
$comment = $this->createKanbanCardCommentFromRequest($request); $comment = $this->createKanbanCardCommentFromRequest($request);
$this->createModel($request->header->account, $comment, KanbanCardCommentMapper::class, 'comment', $request->getOrigin()); $this->createModel($request->header->account, $comment, KanbanCardCommentMapper::class, 'comment', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Card', 'Card successfully created.', $comment); $this->createStandardCreateResponse($request, $response, $comment);
} }
/** /**
@ -270,15 +268,15 @@ final class ApiController extends Controller
public function apiKanbanBoardCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiKanbanBoardCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validateKanbanBoardCreate($request))) { if (!empty($val = $this->validateKanbanBoardCreate($request))) {
$response->data['kanban_board_create'] = new FormValidation($val); $response->header->status = RequestStatusCode::R_400;
$response->header->status = RequestStatusCode::R_400; $this->createInvalidCreateResponse($request, $response, $val);
return; return;
} }
$board = $this->createKanbanBoardFromRequest($request); $board = $this->createKanbanBoardFromRequest($request);
$this->createModel($request->header->account, $board, KanbanBoardMapper::class, 'board',$request->getOrigin()); $this->createModel($request->header->account, $board, KanbanBoardMapper::class, 'board',$request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Board', 'Board successfully created.', $board); $this->createStandardCreateResponse($request, $response, $board);
} }
/** /**
@ -367,10 +365,10 @@ final class ApiController extends Controller
{ {
/** @var \Modules\Kanban\Models\KanbanBoard $old */ /** @var \Modules\Kanban\Models\KanbanBoard $old */
$old = KanbanBoardMapper::get()->where('id', (int) $request->getData('id'))->execute(); $old = KanbanBoardMapper::get()->where('id', (int) $request->getData('id'))->execute();
$old = clone $old; $new = $this->updateBoardFromRequest($request, clone $old);
$new = $this->updateBoardFromRequest($request);
$this->updateModel($request->header->account, $old, $new, KanbanBoardMapper::class, 'board', $request->getOrigin()); $this->updateModel($request->header->account, $old, $new, KanbanBoardMapper::class, 'board', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Board', 'Board successfully updated', $new); $this->createStandardUpdateResponse($request, $response, $new);
} }
/** /**
@ -382,18 +380,16 @@ final class ApiController extends Controller
* *
* @since 1.0.0 * @since 1.0.0
*/ */
private function updateBoardFromRequest(RequestAbstract $request) : KanbanBoard private function updateBoardFromRequest(RequestAbstract $request, KanbanBoard $new) : KanbanBoard
{ {
/** @var KanbanBoard $board */ $new->name = (string) ($request->getData('title') ?? $new->name);
$board = KanbanBoardMapper::get()->where('id', (int) $request->getData('id'))->execute(); $new->description = Markdown::parse((string) ($request->getData('plain') ?? $new->descriptionRaw));
$board->name = (string) ($request->getData('title') ?? $board->name); $new->descriptionRaw = (string) ($request->getData('plain') ?? $new->descriptionRaw);
$board->description = Markdown::parse((string) ($request->getData('plain') ?? $board->descriptionRaw)); $new->order = $request->getDataInt('order') ?? $new->order;
$board->descriptionRaw = (string) ($request->getData('plain') ?? $board->descriptionRaw); $new->setStatus($request->getDataInt('status') ?? $new->getStatus());
$board->order = $request->getDataInt('order') ?? $board->order; $new->style = (string) ($request->getData('style') ?? $new->style);
$board->setStatus($request->getDataInt('status') ?? $board->getStatus());
$board->style = (string) ($request->getData('style') ?? $board->style);
return $board; return $new;
} }
/** /**
@ -412,15 +408,15 @@ final class ApiController extends Controller
public function apiKanbanColumnCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void public function apiKanbanColumnCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
{ {
if (!empty($val = $this->validateKanbanColumnCreate($request))) { if (!empty($val = $this->validateKanbanColumnCreate($request))) {
$response->data['kanban_column_create'] = new FormValidation($val); $response->header->status = RequestStatusCode::R_400;
$response->header->status = RequestStatusCode::R_400; $this->createInvalidCreateResponse($request, $response, $val);
return; return;
} }
$column = $this->createKanbanColumnFromRequest($request); $column = $this->createKanbanColumnFromRequest($request);
$this->createModel($request->header->account, $column, KanbanColumnMapper::class, 'column', $request->getOrigin()); $this->createModel($request->header->account, $column, KanbanColumnMapper::class, 'column', $request->getOrigin());
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Column', 'Column successfully created.', $column); $this->createStandardCreateResponse($request, $response, $column);
} }
/** /**