Pull out general functionality

This commit is contained in:
Dennis Eichhorn 2018-12-09 16:30:04 +01:00
parent ba37ca67b5
commit e488a40d89

View File

@ -89,21 +89,8 @@ final class ApiController extends Controller
} }
$task = $this->createTaskFromRequest($request); $task = $this->createTaskFromRequest($request);
$this->createModel($request, $task, TaskMapper::class, 'task');
$this->app->eventManager->trigger('PRE:Module:Tasks-task-create', '', [$task]); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task', 'Task successfully created.', $task);
TaskMapper::create($task);
$this->app->eventManager->trigger('POST:Module:Tasks-task-create', '', [
$request->getHeader()->getAccount(),
null,
$task,
]);
$response->set($request->getUri()->__toString(), [
'status' => NotificationLevel::OK,
'title' => 'Task',
'message' => 'Task successfully created.',
'response' => $task->jsonSerialize()
]);
} }
/** /**
@ -155,12 +142,7 @@ final class ApiController extends Controller
public function apiTaskGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiTaskGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{ {
$task = TaskMapper::get((int) $request->getData('id')); $task = TaskMapper::get((int) $request->getData('id'));
$response->set($request->getUri()->__toString(), [ $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task', 'Task successfully returned.', $task);
'status' => NotificationLevel::OK,
'title' => 'Task',
'message' => 'Task successfully returned.',
'response' => $task->jsonSerialize()
]);
} }
/** /**
@ -179,21 +161,8 @@ final class ApiController extends Controller
public function apiTaskSet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiTaskSet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{ {
$task = $this->updateTaskFromRequest($request); $task = $this->updateTaskFromRequest($request);
$this->updateModel($request, $task, $task, TaskMapper::class, 'task');
$this->app->eventManager->trigger('PRE:Module:Tasks-task-update', '', [$task]); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task', 'Task successfully updated.', $task);
$status = TaskMapper::update($task);
$this->app->eventManager->trigger('POST:Module:Tasks-task-update', '', [
$request->getHeader()->getAccount(),
null,
$task,
]);
$response->set($request->getUri()->__toString(), [
'status' => NotificationLevel::OK,
'title' => 'Task',
'message' => 'Task successfully updated.',
'response' => $task->jsonSerialize()
]);
} }
/** /**
@ -265,21 +234,9 @@ final class ApiController extends Controller
$task = TaskMapper::get($element->getTask()); $task = TaskMapper::get($element->getTask());
$task->setStatus($element->getStatus()); $task->setStatus($element->getStatus());
$this->app->eventManager->trigger('PRE:Module:Tasks-taskelement-create', '', [$element]); $this->createModel($request, $element, TaskElementMapper::class, 'taskelement');
TaskElementMapper::create($element); $this->updateModel($request, $task, $task, TaskMapper::class, 'task');
TaskMapper::update($task); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task element', 'Task element successfully created.', $element);
$this->app->eventManager->trigger('POST:Module:Tasks-taskelement-create', '', '', [
$request->getHeader()->getAccount(),
null,
$element,
]);
$response->set($request->getUri()->__toString(), [
'status' => NotificationLevel::OK,
'title' => 'Task element',
'message' => 'Task element successfully created.',
'response' => $element->jsonSerialize()
]);
} }
/** /**
@ -322,12 +279,7 @@ final class ApiController extends Controller
public function apiTaskElementGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiTaskElementGet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{ {
$task = TaskElementMapper::get((int) $request->getData('id')); $task = TaskElementMapper::get((int) $request->getData('id'));
$response->set($request->getUri()->__toString(), [ $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task element', 'Task element successfully returned.', $task);
'status' => NotificationLevel::OK,
'title' => 'Task',
'message' => 'Task successfully returned.',
'response' => $task->jsonSerialize()
]);
} }
/** /**
@ -345,22 +297,11 @@ final class ApiController extends Controller
*/ */
public function apiTaskElementSet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void public function apiTaskElementSet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void
{ {
$task = $this->updateTaskElementFromRequest($request); $element = $this->updateTaskElementFromRequest($request);
$this->updateModel($request, $element, $element, TaskElementMapper::class, 'taskelement');
$this->app->eventManager->trigger('PRE:Module:Tasks-taskelement-update', '', [$task]); // todo: update task if elment status change had effect on task status!!!
$status = TaskElementMapper::update($task); //$this->updateModel($request, $task, $task, TaskMapper::class, 'task');
$this->app->eventManager->trigger('POST:Module:Tasks-taskelement-update', '', [ $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task element', 'Task element successfully updated.', $element);
$request->getHeader()->getAccount(),
null,
$task,
]);
$response->set($request->getUri()->__toString(), [
'status' => NotificationLevel::OK,
'title' => 'Task element',
'message' => 'Task element successfully updated.',
'response' => $task->jsonSerialize()
]);
} }
/** /**