X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/934a833818b77e51f83d21a22478aea36ae9a294..663f81a2b1eba75883fbab6577a386351b86f623:/app/Http/Controllers/Api/BookshelfApiController.php diff --git a/app/Http/Controllers/Api/BookshelfApiController.php b/app/Http/Controllers/Api/BookshelfApiController.php index c29e5b0ae..400dff977 100644 --- a/app/Http/Controllers/Api/BookshelfApiController.php +++ b/app/Http/Controllers/Api/BookshelfApiController.php @@ -11,23 +11,7 @@ use Illuminate\Validation\ValidationException; class BookshelfApiController extends ApiController { - /** - * @var BookshelfRepo - */ - protected $bookshelfRepo; - - protected $rules = [ - 'create' => [ - 'name' => 'required|string|max:255', - 'description' => 'string|max:1000', - 'books' => 'array', - ], - 'update' => [ - 'name' => 'string|min:1|max:255', - 'description' => 'string|max:1000', - 'books' => 'array', - ], - ]; + protected BookshelfRepo $bookshelfRepo; /** * BookshelfApiController constructor. @@ -45,7 +29,7 @@ class BookshelfApiController extends ApiController $shelves = Bookshelf::visible(); return $this->apiListingResponse($shelves, [ - 'id', 'name', 'slug', 'description', 'created_at', 'updated_at', 'created_by', 'updated_by', 'owned_by', 'image_id', + 'id', 'name', 'slug', 'description', 'created_at', 'updated_at', 'created_by', 'updated_by', 'owned_by', ]); } @@ -75,7 +59,7 @@ class BookshelfApiController extends ApiController $shelf = Bookshelf::visible()->with([ 'tags', 'cover', 'createdBy', 'updatedBy', 'ownedBy', 'books' => function (BelongsToMany $query) { - $query->visible()->get(['id', 'name', 'slug']); + $query->scopes('visible')->get(['id', 'name', 'slug']); }, ])->findOrFail($id); @@ -118,4 +102,24 @@ class BookshelfApiController extends ApiController return response('', 204); } + + protected function rules(): array + { + return [ + 'create' => [ + 'name' => ['required', 'string', 'max:255'], + 'description' => ['string', 'max:1000'], + 'books' => ['array'], + 'tags' => ['array'], + 'image' => array_merge(['nullable'], $this->getImageValidationRules()), + ], + 'update' => [ + 'name' => ['string', 'min:1', 'max:255'], + 'description' => ['string', 'max:1000'], + 'books' => ['array'], + 'tags' => ['array'], + 'image' => array_merge(['nullable'], $this->getImageValidationRules()), + ], + ]; + } }