70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace App\Http\Controllers;
 | 
						|
 | 
						|
use App\Post;
 | 
						|
use App\Services\ImageService;
 | 
						|
use App\User;
 | 
						|
use Illuminate\Support\Facades\Auth;
 | 
						|
use Intervention\Image\Facades\Image;
 | 
						|
use Illuminate\Support\Facades\File;
 | 
						|
use Spatie\MediaLibrary\Models\Media;
 | 
						|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 | 
						|
use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
 | 
						|
 | 
						|
class ImageController extends Controller
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @param int $post_id
 | 
						|
     * @param string $alias
 | 
						|
     * @param string $image
 | 
						|
     * @param ImageService $image_service
 | 
						|
     *
 | 
						|
     * @return mixed
 | 
						|
     */
 | 
						|
    public function display($post_id, $alias = '')
 | 
						|
    {
 | 
						|
        /** @var Post $post */
 | 
						|
        $post = Post::find($post_id);
 | 
						|
 | 
						|
        if (Auth::user()->getAuthIdentifier() !== (int)$post->user_id) {
 | 
						|
            throw new UnauthorizedHttpException('Cette image ne vous appartient pas.');
 | 
						|
        }
 | 
						|
 | 
						|
        $first_media = $post->getFirstMedia('post_image');
 | 
						|
        if (!$first_media instanceof Media) {
 | 
						|
            throw new NotFoundHttpException('Média non trouvé en base.');
 | 
						|
        }
 | 
						|
 | 
						|
        return Image::make($first_media->getPath($alias))->response($first_media->mime_type);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @param string $alias
 | 
						|
     * @return mixed
 | 
						|
     */
 | 
						|
    public function avatar($alias = '')
 | 
						|
    {
 | 
						|
        /** @var User $user */
 | 
						|
        $user = User::find(Auth::user()->getAuthIdentifier());
 | 
						|
 | 
						|
        readfile($user->getFirstMediaPath('avatars', $alias));
 | 
						|
        exit;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
 | 
						|
     */
 | 
						|
    public function gallery()
 | 
						|
    {
 | 
						|
        $posts_with_image = Post::where('user_id', Auth::user()->getAuthIdentifier())
 | 
						|
            ->where('image', '!=', 'null')
 | 
						|
            ->orderBy('created_at', 'desc')
 | 
						|
            ->paginate(9);
 | 
						|
 | 
						|
        return view('gallery.my', [
 | 
						|
            'posts' => $posts_with_image,
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
}
 |