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