file request api update

This commit is contained in:
Čarodej
2022-05-04 09:03:18 +02:00
parent cf7e17e188
commit 67b9f7f4dc
3 changed files with 31 additions and 8 deletions

View File

@@ -50,8 +50,16 @@ class Handler extends ExceptionHandler
public function render($request, Throwable $exception)
{
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()
->redirectTo('/not-found')->setStatusCode(404);
->redirectTo('/not-found')
->setStatusCode(404);
}
return parent::render($request, $exception);

View File

@@ -2,7 +2,11 @@
namespace Domain\UploadRequest\Controllers;
use Auth;
use Gate;
use Illuminate\Auth\Access\AuthorizationException;
use Notification;
use Illuminate\Http\JsonResponse;
use Domain\Folders\Models\Folder;
use App\Http\Controllers\Controller;
use Domain\UploadRequest\Requests\StoreUploadRequest;
use Domain\UploadRequest\Resources\UploadRequestResource;
@@ -10,8 +14,19 @@ use Domain\UploadRequest\Notifications\UploadRequestNotification;
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([
'folder_id' => $request->input('folder_id'),
'email' => $request->input('email'),
@@ -20,11 +35,11 @@ class CreateUploadRequestController extends Controller
]);
// If user type email, notify by email
if ($uploadRequest->email) {
if ($request->has('email')) {
Notification::route('mail', $uploadRequest->email)
->notify(new UploadRequestNotification($uploadRequest));
}
return response(new UploadRequestResource($uploadRequest), 201);
return response()->json(new UploadRequestResource($uploadRequest), 201);
}
}

View File

@@ -23,10 +23,10 @@ class StoreUploadRequest extends FormRequest
public function rules()
{
return [
'email' => 'sometimes|string|nullable',
'notes' => 'sometimes|string|nullable',
'folder_id' => 'sometimes|string',
'name' => 'sometimes|string|nullable',
'email' => 'sometimes|email',
'notes' => 'sometimes|string',
'folder_id' => 'sometimes|uuid',
'name' => 'sometimes|string',
];
}
}