ClearBowl/api/app/Http/Controllers/ProductsController.php

42 lines
1.2 KiB
PHP
Raw Normal View History

2019-12-04 12:49:41 +01:00
<?php
namespace App\Http\Controllers;
use App\Helpers\NutritionCalculator;
2019-12-04 12:49:41 +01:00
use App\Http\Requests\AddProductRequest;
use App\Repositories\ProductsRepositoryInterface;
2019-12-05 10:25:36 +01:00
use Illuminate\Http\Request;
2019-12-04 12:49:41 +01:00
class ProductsController extends Controller
{
2019-12-05 15:19:09 +01:00
private $productsRepository;
2019-12-04 12:49:41 +01:00
public function __construct(ProductsRepositoryInterface $productsRepository)
{
$this->productsRepository = $productsRepository;
}
public function add(AddProductRequest $request)
{
$product = $this->productsRepository->create($request->all());
return response()->json(['success' => true, 'data' => ['product' => $product]], 200);
}
2019-12-05 10:25:36 +01:00
public function index(Request $request)
{
2019-12-15 21:09:14 +01:00
$filters = $this->getFilters($request);
$products = $this->productsRepository->paginate($filters);
2019-12-05 10:25:36 +01:00
return response()->json(['success' => true, 'data' => ['products' => $products]], 200);
}
public function calculate(Request $request)
{
$products = $this->productsRepository->fillProductsInfo($request->input('products'));
$nutrition = NutritionCalculator::calculateNutritionForProducts($products);
return response()->json(['success' => true, 'data' => ['nutrition' => $nutrition]]);
}
2019-12-04 12:49:41 +01:00
}