[CLEAR-29] Retrieving list of products

This commit is contained in:
Artur Nowakowski 2019-12-05 10:25:36 +01:00
parent c3d2c3330c
commit f7d3aa68b9
4 changed files with 18 additions and 2 deletions

View File

@ -4,10 +4,12 @@ namespace App\Http\Controllers;
use App\Http\Requests\AddProductRequest; use App\Http\Requests\AddProductRequest;
use App\Repositories\ProductsRepositoryInterface; use App\Repositories\ProductsRepositoryInterface;
use Illuminate\Http\Request;
class ProductsController extends Controller class ProductsController extends Controller
{ {
private ProductsRepositoryInterface $productsRepository; private ProductsRepositoryInterface $productsRepository;
private int $paginationSize = 10;
public function __construct(ProductsRepositoryInterface $productsRepository) public function __construct(ProductsRepositoryInterface $productsRepository)
{ {
@ -20,4 +22,11 @@ class ProductsController extends Controller
return response()->json(['success' => true, 'data' => ['product' => $product]], 200); return response()->json(['success' => true, 'data' => ['product' => $product]], 200);
} }
public function index(Request $request)
{
$products = $this->productsRepository->paginate($this->paginationSize);
return response()->json(['success' => true, 'data' => ['products' => $products]], 200);
}
} }

View File

@ -12,4 +12,9 @@ class ProductsRepository implements ProductsRepositoryInterface
{ {
return Product::create($data); return Product::create($data);
} }
public function paginate($chunkSize)
{
return Product::paginate($chunkSize);
}
} }

View File

@ -6,4 +6,5 @@ namespace App\Repositories;
interface ProductsRepositoryInterface interface ProductsRepositoryInterface
{ {
public function create($data); public function create($data);
public function paginate($chunkSize);
} }

View File

@ -8,6 +8,7 @@ Route::group(['prefix' => 'user', 'middleware' => ['assign.guard:users']], funct
Route::get('/me', 'UsersController@me'); Route::get('/me', 'UsersController@me');
}); });
Route::group(['prefix' => 'product', 'middleware' => ['assign.guard:users']], function () { Route::prefix('product')->group(function () {
Route::post('/', 'ProductsController@add'); Route::post('/', 'ProductsController@add')->middleware(['assign.guard:users']);
Route::get('/', 'ProductsController@index');
}); });