X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/2409d1850feeae10b5f0ef6a3f67bc9739881f44..refs/pull/3032/head:/app/Http/Controllers/Api/AttachmentApiController.php diff --git a/app/Http/Controllers/Api/AttachmentApiController.php b/app/Http/Controllers/Api/AttachmentApiController.php index 7aa4ee493..06d9f6907 100644 --- a/app/Http/Controllers/Api/AttachmentApiController.php +++ b/app/Http/Controllers/Api/AttachmentApiController.php @@ -17,16 +17,16 @@ class AttachmentApiController extends ApiController protected $rules = [ 'create' => [ - 'name' => 'required|min:1|max:255|string', + 'name' => 'required|min:1|max:255|string', 'uploaded_to' => 'required|integer|exists:pages,id', - 'file' => 'required_without:link|file', - 'link' => 'required_without:file|min:1|max:255|safe_url' + 'file' => 'required_without:link|file', + 'link' => 'required_without:file|min:1|max:255|safe_url', ], 'update' => [ - 'name' => 'min:1|max:255|string', + 'name' => 'min:1|max:255|string', 'uploaded_to' => 'integer|exists:pages,id', - 'file' => 'file', - 'link' => 'min:1|max:255|safe_url' + 'file' => 'file', + 'link' => 'min:1|max:255|safe_url', ], ]; @@ -52,6 +52,9 @@ class AttachmentApiController extends ApiController * An uploaded_to value must be provided containing an ID of the page * that this upload will be related to. * + * If you're uploading a file the POST data should be provided via + * a multipart/form-data type request instead of JSON. + * * @throws ValidationException * @throws FileUploadException */ @@ -69,11 +72,14 @@ class AttachmentApiController extends ApiController $attachment = $this->attachmentService->saveNewUpload($uploadedFile, $page->id); } else { $attachment = $this->attachmentService->saveNewFromLink( - $requestData['name'], $requestData['link'], $page->id + $requestData['name'], + $requestData['link'], + $page->id ); } $this->attachmentService->updateFile($attachment, $requestData); + return response()->json($attachment); } @@ -108,6 +114,8 @@ class AttachmentApiController extends ApiController /** * Update the details of a single attachment. + * As per the create endpoint, if a file is being provided as the attachment content + * the request should be formatted as a multipart/form-data request instead of JSON. * * @throws ValidationException * @throws FileUploadException @@ -135,6 +143,7 @@ class AttachmentApiController extends ApiController } $this->attachmentService->updateFile($attachment, $requestData); + return response()->json($attachment); } @@ -153,5 +162,4 @@ class AttachmentApiController extends ApiController return response('', 204); } - }