update settings

This commit is contained in:
Dennis Eichhorn 2022-05-01 22:07:54 +02:00
parent 34144151be
commit ddb34687fa
4 changed files with 30 additions and 0 deletions

View File

@ -77,6 +77,11 @@
"type": "VARCHAR(255)",
"null": false
},
"task_trigger": {
"name": "task_trigger",
"type": "VARCHAR(255)",
"null": false
},
"task_schedule": {
"name": "task_schedule",
"type": "INT",

View File

@ -320,6 +320,11 @@ final class ApiController extends Controller
/** @var Task $new */
$new = $this->updateTaskFromRequest($request);
$this->updateModel($request->header->account, $old, $new, TaskMapper::class, 'task', $request->getOrigin());
if (!empty($new->trigger)) {
$this->app->eventManager->triggerSimilar($new->trigger, '', $new);
}
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task', 'Task successfully updated.', $new);
}
@ -415,6 +420,11 @@ final class ApiController extends Controller
}
$this->updateModel($request->header->account, $task, $task, TaskMapper::class, 'task', $request->getOrigin());
if (!empty($task->trigger)) {
$this->app->eventManager->triggerSimilar($task->trigger, '', $task);
}
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task element', 'Task element successfully created.', $element);
}
@ -607,6 +617,10 @@ final class ApiController extends Controller
$task->due = $new->due;
$this->updateModel($request->header->account, $task, $task, TaskMapper::class, 'task', $request->getOrigin());
if (!empty($task->trigger)) {
$this->app->eventManager->triggerSimilar($task->trigger, '', $task);
}
}
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Task element', 'Task element successfully updated.', $new);

View File

@ -59,6 +59,16 @@ class Task implements \JsonSerializable
*/
public string $redirect = '';
/**
* Trigger
*
* Event trigger to execute on task change.
*
* @var string
* @since 1.0.0
*/
public string $trigger = '';
/**
* Creator.
*

View File

@ -55,6 +55,7 @@ final class TaskMapper extends DataMapperFactory
'task_schedule' => ['name' => 'task_schedule', 'type' => 'int', 'internal' => 'schedule'],
'task_start' => ['name' => 'task_start', 'type' => 'DateTime', 'internal' => 'start'],
'task_redirect' => ['name' => 'task_redirect', 'type' => 'string', 'internal' => 'redirect'],
'task_trigger' => ['name' => 'task_trigger', 'type' => 'string', 'internal' => 'trigger'],
'task_created_by' => ['name' => 'task_created_by', 'type' => 'int', 'internal' => 'createdBy', 'readonly' => true],
'task_created_at' => ['name' => 'task_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt', 'readonly' => true],
];