'request-project-creation.json', 'method' => 'POST', 'action' => function () { $json = file_get_contents('php://input'); $data = json_decode($json); $user = kirby()->user(); $client = kirby()->user()->client()->toPage()->uuid(); $projectData = [ "slug" => esc(Str::slug($data->title)), "template" => "project", "content" => [ "title" => esc($data->title), "requestDetails" => esc("Demande de " . kirby()->user()->name() . " (" . kirby()->user()->email() . ") : \n\n" . $data->details), "client" => [$client], "isClientRequest" => "true", "isDTLEnabled" => esc($data->isDTLEnabled) ] ]; $projects = page("projects"); try { $newProject = $projects->createChild($projectData); $date = new DateTime(); $formattedDate = $date->format(DateTime::ISO8601); $notificationData = [ "location" => [ "page" => $newProject ], "date" => (string) $formattedDate, "text" => nl2br(esc($data->details)), "author" => $user, "id" => Str::uuid(), "type" => "project-request", ]; $newProject->createNotification($notificationData); return [ "status" => "success", ]; } catch (\Throwable $th) { return [ "status" => "error", "message" => $th->getMessage() . " in " . $th->getFile() . " line " . $th->getLine() ]; } } ];