<?php namespace File\File\Http\Controllers\Api; use App\Http\Controllers\Api\PublicController as BaseController; use File\File\Interfaces\ImageRepositoryInterface; use File\File\Repositories\Presenter\ImageItemTransformer; /** * Pubic API controller class. */ class ImagePublicController extends BaseController { /** * Constructor. * * @param type \File\Image\Interfaces\ImageRepositoryInterface $image * * @return type */ public function __construct(ImageRepositoryInterface $image) { $this->repository = $image; parent::__construct(); } /** * Show image's list. * * @param string $slug * * @return response */ protected function index() { $images = $this->repository ->setPresenter('\\File\\File\\Repositories\\Presenter\\ImageListPresenter') ->scopeQuery(function($query){ return $query->orderBy('id','DESC'); })->paginate(); $images['code'] = 2000; return response()->json($images) ->setStatusCode(200, 'INDEX_SUCCESS'); } /** * Show image. * * @param string $slug * * @return response */ protected function show($slug) { $image = $this->repository ->scopeQuery(function($query) use ($slug) { return $query->orderBy('id','DESC') ->where('slug', $slug); })->first(['*']); if (!is_null($image)) { $image = $this->itemPresenter($module, new ImageItemTransformer); $image['code'] = 2001; return response()->json($image) ->setStatusCode(200, 'SHOW_SUCCESS'); } else { return response()->json([]) ->setStatusCode(400, 'SHOW_ERROR'); } } }