]> BookStack Code Mirror - bookstack/blob - app/Http/Controllers/Images/SystemImageController.php
Started diversion to not using image manager for cover/system/user
[bookstack] / app / Http / Controllers / Images / SystemImageController.php
1 <?php
2
3 // TODO - Replace this with setting-level handling
4 // Since won't be part of image manager handling
5
6 namespace BookStack\Http\Controllers\Images;
7
8 use BookStack\Exceptions\ImageUploadException;
9 use BookStack\Uploads\ImageRepo;
10 use Illuminate\Http\Request;
11 use BookStack\Http\Controllers\Controller;
12
13 class SystemImageController extends Controller
14 {
15     protected $imageRepo;
16
17     /**
18      * SystemImageController constructor.
19      * @param ImageRepo $imageRepo
20      */
21     public function __construct(ImageRepo $imageRepo)
22     {
23         $this->imageRepo = $imageRepo;
24         parent::__construct();
25     }
26
27     /**
28      * Get a list of system images, in a list.
29      * @param Request $request
30      * @return \Illuminate\Http\JsonResponse
31      */
32     public function list(Request $request)
33     {
34         $this->checkPermission('settings-manage');
35         $page = $request->get('page', 1);
36         $searchTerm = $request->get('search', null);
37
38         $imgData = $this->imageRepo->getPaginatedByType('system', $page, 24, null, $searchTerm);
39         return response()->json($imgData);
40     }
41
42     /**
43      * Store a new system image.
44      * @param Request $request
45      * @return Illuminate\Http\JsonResponse
46      * @throws \Exception
47      */
48     public function create(Request $request)
49     {
50         $this->checkPermission('image-create-all');
51         $this->checkPermission('settings-manage');
52
53         $this->validate($request, [
54             'file' => $this->imageRepo->getImageValidationRules()
55         ]);
56
57         try {
58             $imageUpload = $request->file('file');
59             $image = $this->imageRepo->saveNew($imageUpload, 'system', 0);
60         } catch (ImageUploadException $e) {
61             return response($e->getMessage(), 500);
62         }
63
64         return response()->json($image);
65     }
66
67 }