Skip to content
Snippets Groups Projects
Commit b3f6bde7 authored by Marcus Eibrink-Lunzenauer's avatar Marcus Eibrink-Lunzenauer
Browse files

Enable updating the start-date of task-groups.

parent 6a50c2e1
No related branches found
No related tags found
No related merge requests found
...@@ -63,19 +63,33 @@ class TaskGroupsUpdate extends JsonApiController ...@@ -63,19 +63,33 @@ class TaskGroupsUpdate extends JsonApiController
return 'Invalid `type` of document´s `data`.'; return 'Invalid `type` of document´s `data`.';
} }
if (!self::arrayHas($json, 'data.attributes.start-date')) {
return 'Missing `start-date` attribute.';
}
$startDate = self::arrayGet($json, 'data.attributes.start-date');
if (!self::isValidTimestamp($startDate)) {
return '`start-date` is not an ISO 8601 timestamp.';
}
if (!self::arrayHas($json, 'data.attributes.end-date')) { if (!self::arrayHas($json, 'data.attributes.end-date')) {
return 'Missing `review-start` attribute.'; return 'Missing `end-date` attribute.';
} }
$endDate = self::arrayGet($json, 'data.attributes.end-date'); $endDate = self::arrayGet($json, 'data.attributes.end-date');
if (!self::isValidTimestamp($endDate)) { if (!self::isValidTimestamp($endDate)) {
return '`end-date` is not an ISO 8601 timestamp.'; return '`end-date` is not an ISO 8601 timestamp.';
} }
if (self::fromISO8601($startDate) > self::fromISO8601($endDate)) {
return '`start-date` is later than `end-date`';
}
} }
private function update(TaskGroup $taskGroup, array $json): TaskGroup private function update(TaskGroup $taskGroup, array $json): TaskGroup
{ {
$startDate = self::fromISO8601(self::arrayGet($json, 'data.attributes.start-date'));
$endDate = self::fromISO8601(self::arrayGet($json, 'data.attributes.end-date')); $endDate = self::fromISO8601(self::arrayGet($json, 'data.attributes.end-date'));
$taskGroup->start_date = $startDate->getTimestamp();
$taskGroup->end_date = $endDate->getTimestamp(); $taskGroup->end_date = $endDate->getTimestamp();
$taskGroup->store(); $taskGroup->store();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment