new content notification working for client brief

This commit is contained in:
isUnknown 2024-11-22 09:20:38 +01:00
parent 8ae00d7657
commit c1d2c73118
9 changed files with 277 additions and 70 deletions

View file

@ -1,32 +1,49 @@
<?php
return [
'pattern' => '(:all)validate-brief.json',
'pattern' => 'validate-brief.json',
'method' => 'POST',
'action' => function () {
$json = file_get_contents('php://input');
$data = json_decode($json);
$json = file_get_contents('php://input');
$data = json_decode($json);
$page = page($data->pageUri);
try {
$newPage = $page->update([
'isValidated' => 'true'
]);
echo json_encode([
"success" => "'" . $newPage->title()->value() . "' brief validated."
]);
$brief = page($data->briefUri);
$project = $brief->parent();
$href = $data->dialogUri ? $data->dialogUri : $brief->url();
try {
$newPage = $brief->update([
'isValidated' => 'true'
]);
kirby()->user()->sendNotification($newPage->parent(), [
'date' => $newPage->modified('YYYY-MM-DD'),
'author' => kirby()->user()->name()->isNotEmpty() ? kirby()->user()->name() : kirby()->user()->email(),
'url' => $newPage->url(),
'type' => 'content'
]);
} catch (\Throwable $th) {
return [
"error" => "Can't validate '" . $page->title()->value() . "' brief.",
'details' => $th->getMessage()
];
}
$notification = [
'location' => [
'href' => (string) $href,
'project' => [
'title' => (string) $project->title(),
'uri' => (string) $project->url()
]
],
'date' => $newPage->modified('YYYY-MM-DD'),
'author' => [
'name' => (string) kirby()->user()->name(),
'email' => (string) kirby()->user()->email(),
'uuid' => (string) kirby()->user()->uuid(),
'role' => (string) kirby()->user()->role(),
],
'type' => 'content'
];
kirby()->user()->sendNotification($project, $notification);
return [
"success" => "'" . $project->title()->value() . "' brief validated."
];
} catch (\Throwable $th) {
return [
"error" => "Can't validate '" . $brief->title()->value() . "' brief.",
'details' => $th->getMessage()
];
}
}
];
];