From 041684372387788666a33a22354b71cf670c3c34 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 29 Aug 2019 20:09:10 -0600 Subject: [PATCH] Update MediaController, add update method --- app/Http/Controllers/MediaController.php | 52 +++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/MediaController.php b/app/Http/Controllers/MediaController.php index 477d8a730..691a24d13 100644 --- a/app/Http/Controllers/MediaController.php +++ b/app/Http/Controllers/MediaController.php @@ -2,7 +2,57 @@ namespace App\Http\Controllers; +use Illuminate\Http\Request; +use Auth, Storage, URL; +use App\Media; +use Image as Intervention; +use App\Jobs\ImageOptimizePipeline\ImageOptimize; + class MediaController extends Controller { - // + public function __construct() + { + $this->middleware('auth'); + } + + public function index(Request $request) + { + //return view('settings.drive.index'); + } + + public function composeUpdate(Request $request, $id) + { + ini_set('memory_limit', '1024M'); + $this->validate($request, [ + 'file' => function() { + return [ + 'required', + 'mimes:' . config('pixelfed.media_types'), + 'max:' . config('pixelfed.max_photo_size'), + ]; + }, + ]); + + $user = Auth::user(); + + $photo = $request->file('file'); + + $media = Media::whereUserId($user->id) + ->whereProfileId($user->profile_id) + ->whereNull('status_id') + ->findOrFail($id); + + $fragments = explode('/', $media->media_path); + $name = last($fragments); + array_pop($fragments); + $dir = implode('/', $fragments); + $path = $photo->storeAs($dir, $name); + $res = []; + $res['url'] = URL::temporarySignedRoute( + 'temp-media', now()->addHours(1), ['profileId' => $media->profile_id, 'mediaId' => $media->id] + ); + ImageOptimize::dispatch($media); + return $res; + + } }