mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-23 21:34:41 +00:00
file request api update
This commit is contained in:
@@ -50,8 +50,16 @@ class Handler extends ExceptionHandler
|
|||||||
public function render($request, Throwable $exception)
|
public function render($request, Throwable $exception)
|
||||||
{
|
{
|
||||||
if ($exception instanceof ModelNotFoundException) {
|
if ($exception instanceof ModelNotFoundException) {
|
||||||
|
if (in_array('application/json', $request->getAcceptableContentTypes())) {
|
||||||
|
return response()->json([
|
||||||
|
'type' => 'error',
|
||||||
|
'message' => "We couldn't find your requested item.",
|
||||||
|
], 404);
|
||||||
|
}
|
||||||
|
|
||||||
return response()
|
return response()
|
||||||
->redirectTo('/not-found')->setStatusCode(404);
|
->redirectTo('/not-found')
|
||||||
|
->setStatusCode(404);
|
||||||
}
|
}
|
||||||
|
|
||||||
return parent::render($request, $exception);
|
return parent::render($request, $exception);
|
||||||
|
|||||||
@@ -2,7 +2,11 @@
|
|||||||
namespace Domain\UploadRequest\Controllers;
|
namespace Domain\UploadRequest\Controllers;
|
||||||
|
|
||||||
use Auth;
|
use Auth;
|
||||||
|
use Gate;
|
||||||
|
use Illuminate\Auth\Access\AuthorizationException;
|
||||||
use Notification;
|
use Notification;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Domain\Folders\Models\Folder;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\UploadRequest\Requests\StoreUploadRequest;
|
use Domain\UploadRequest\Requests\StoreUploadRequest;
|
||||||
use Domain\UploadRequest\Resources\UploadRequestResource;
|
use Domain\UploadRequest\Resources\UploadRequestResource;
|
||||||
@@ -10,8 +14,19 @@ use Domain\UploadRequest\Notifications\UploadRequestNotification;
|
|||||||
|
|
||||||
class CreateUploadRequestController extends Controller
|
class CreateUploadRequestController extends Controller
|
||||||
{
|
{
|
||||||
public function __invoke(StoreUploadRequest $request)
|
/**
|
||||||
|
* @throws AuthorizationException
|
||||||
|
*/
|
||||||
|
public function __invoke(StoreUploadRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
|
// Check if user is owner of the file
|
||||||
|
if ($request->has('folder_id')) {
|
||||||
|
$folder = Folder::findOrFail($request->input('folder_id'));
|
||||||
|
|
||||||
|
Gate::authorize('owner', [$folder]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create upload request
|
||||||
$uploadRequest = Auth::user()->uploadRequest()->create([
|
$uploadRequest = Auth::user()->uploadRequest()->create([
|
||||||
'folder_id' => $request->input('folder_id'),
|
'folder_id' => $request->input('folder_id'),
|
||||||
'email' => $request->input('email'),
|
'email' => $request->input('email'),
|
||||||
@@ -20,11 +35,11 @@ class CreateUploadRequestController extends Controller
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
// If user type email, notify by email
|
// If user type email, notify by email
|
||||||
if ($uploadRequest->email) {
|
if ($request->has('email')) {
|
||||||
Notification::route('mail', $uploadRequest->email)
|
Notification::route('mail', $uploadRequest->email)
|
||||||
->notify(new UploadRequestNotification($uploadRequest));
|
->notify(new UploadRequestNotification($uploadRequest));
|
||||||
}
|
}
|
||||||
|
|
||||||
return response(new UploadRequestResource($uploadRequest), 201);
|
return response()->json(new UploadRequestResource($uploadRequest), 201);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ class StoreUploadRequest extends FormRequest
|
|||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'email' => 'sometimes|string|nullable',
|
'email' => 'sometimes|email',
|
||||||
'notes' => 'sometimes|string|nullable',
|
'notes' => 'sometimes|string',
|
||||||
'folder_id' => 'sometimes|string',
|
'folder_id' => 'sometimes|uuid',
|
||||||
'name' => 'sometimes|string|nullable',
|
'name' => 'sometimes|string',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user