X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/491f73e0cdb236aa862e7373175e4b8b4c16ea38..refs/pull/166/head:/app/Http/Controllers/ImageController.php diff --git a/app/Http/Controllers/ImageController.php b/app/Http/Controllers/ImageController.php index f9d65c48b..621c23e85 100644 --- a/app/Http/Controllers/ImageController.php +++ b/app/Http/Controllers/ImageController.php @@ -1,14 +1,9 @@ -json($imgData); } + /** + * Search through images within a particular type. + * @param $type + * @param int $page + * @param Request $request + * @return mixed + */ + public function searchByType($type, $page = 0, Request $request) + { + $this->validate($request, [ + 'term' => 'required|string' + ]); + + $searchTerm = $request->get('term'); + $imgData = $this->imageRepo->searchPaginatedByType($type, $page, 24, $searchTerm); + return response()->json($imgData); + } + /** * Get all images for a user. * @param int $page @@ -55,6 +68,27 @@ class ImageController extends Controller return response()->json($imgData); } + /** + * Get gallery images with a specific filter such as book or page + * @param $filter + * @param int $page + * @param Request $request + */ + public function getGalleryFiltered($filter, $page = 0, Request $request) + { + $this->validate($request, [ + 'page_id' => 'required|integer' + ]); + + $validFilters = collect(['page', 'book']); + if (!$validFilters->contains($filter)) return response('Invalid filter', 500); + + $pageId = $request->get('page_id'); + $imgData = $this->imageRepo->getGalleryFiltered($page, 24, strtolower($filter), $pageId); + + return response()->json($imgData); + } + /** * Handles image uploads for use on pages. * @param string $type @@ -65,7 +99,7 @@ class ImageController extends Controller { $this->checkPermission('image-create-all'); $this->validate($request, [ - 'file' => 'image|mimes:jpeg,gif,png' + 'file' => 'is_image' ]); $imageUpload = $request->file('file');