$dbReturn2 = $col->posts->findOne(array("_id" => new MongoId($postId)), array("collectionId", "_id")); // has field owner $dbReturn3 = $col->followers->find(array("collectionId" => new MongoId($dbReturn2["collectionId"]))); $data = array("requests" => array(array("id" => "comment_delete_receive", "signature" => $item["signature"], "postId" => $postId, "deleter" => $_SESSION["charme_userid"]))); // Notifiy followers! foreach ($dbReturn3 as $item2) { $req21 = new \App\Requests\JSON($item2["follower"], $_SESSION["charme_userid"], $data); $arr = $req21->givePostman(2); } // Notify people seeing the post in their filtered stream $cursor4 = $col->streamSubscribers->find(array("postId" => $postId)); // Send comment to other servers which have registred for it in search_respond // These servers will get comment updates for 3? days foreach ($cursor4 as $receiver) { $req21 = new \App\Requests\JSON("noreply@" . $receiver["server"], $_SESSION["charme_userid"], $data); $arr = $req21->givePostman(2); } // $col->streamcomments->remove(array("commentId" => $item["signature"]["object"]["commentId"], "postowner" => $_SESSION["charme_userid"])); // will be done locally via comment_delete receive $col->comments->remove(array("_id" => $commentId, "userId" => $_SESSION["charme_userid"])); // Delete comment locally $col->comments->remove(array("_id" => $commentId, "postowner" => $_SESSION["charme_userid"])); \App\Hydra\Distribute::start(); // Start server distribution break; // Comments can either be deleted by post owner or by comment owner, so check if the sender is either one of them // Comments can either be deleted by post owner or by comment owner, so check if the sender is either one of them case "comment_delete_receive": // TODO: Check if sender signature is commentId and also add sender signature to commentId $col = \App\DB\Get::Collection(); $realCommentId = $item["signature"]["object"]["commentId"]; $pemkey = \App\Security\PublicKeys::tryToGet($item["deleter"], $item["signature"]["signature"]["keyRevision"]);