<?php

return [
  'pattern' => '(:all)delete-comment.json',
  'method'  => 'POST',
  'action'  => function () {
      $json = file_get_contents('php://input');
      $data = json_decode($json);
      // kirby()->impersonate('kirby');

      $page = page($data->location->page->uri);

      $file = $page->file($data->location->file->uuid);
      $comments = $file->comments()->isEmpty() == true ? [] : Yaml::decode($file->comments()->value());

      $isReply = $data->location->parent->id ?? false;
      foreach ($comments as $key => &$comment) {
          if ($isReply) {
              if ($comment['id'] === $data->location->parent->id) {
                  foreach ($comment['replies'] as $replyKey => $reply) {
                      if ($reply['id'] === $data->id) {
                          unset($comment['replies'][$replyKey]);
                          $comment['replies'] = array_values($comment['replies']);
                      }
                  }
              }
          } else {
              if ($comment['id'] === $data->id) {
                  unset($comments[$key]);
              }
          }
      }

      $comments = array_values($comments);

      $newFile = $file->update([
        'comments' => $comments,
      ]);

      echo json_encode(getFileData($newFile));

      $project = $page->parents()->findBy('template', 'project');
      $project->deleteNotification($data->id);

      exit;
  },
];
