58 lines
1.7 KiB
PHP
58 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\V1;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\Api\V1\XmlIncosIndexRequest;
|
|
use App\Http\Resources\Api\V1\XmlIncoResource;
|
|
use App\Models\XmlInco;
|
|
use Illuminate\Http\Resources\Json\JsonResource;
|
|
use Illuminate\Http\Resources\Json\ResourceCollection;
|
|
|
|
class XmlIncoController extends Controller
|
|
{
|
|
/**
|
|
* Returns xmlIncos.
|
|
*
|
|
* @param XmlIncosIndexRequest $request
|
|
* - autorised is 'brand' with id
|
|
* @return JsonResource
|
|
*/
|
|
public function index(XmlIncosIndexRequest $request): ResourceCollection
|
|
{
|
|
/** @var \App\Models\ArcadiaBrand|null $arcadiaBrand */
|
|
$arcadiaBrand = $request->arcadiaBrand;
|
|
|
|
$xmlIncos = XmlInco::query();
|
|
|
|
if ($arcadiaBrand) {
|
|
// * Make sure we are accessing xmlIncos that belongs to our service.
|
|
$this->authorize('arcadiaBrandBelongsToService', $arcadiaBrand);
|
|
|
|
$xmlIncos->whereHas('arcadiaBrands', function ($q) use ($arcadiaBrand) {
|
|
$q->whereId($arcadiaBrand->id);
|
|
});
|
|
}
|
|
|
|
return XmlIncoResource::collection($xmlIncos->simplePaginate(
|
|
$request->per_page,
|
|
['*'],
|
|
'page',
|
|
$request->page
|
|
)->items());
|
|
}
|
|
|
|
/**
|
|
* Return a specific xmlInco.
|
|
*
|
|
* @param XmlInco $xmlInco
|
|
* @return JsonResource
|
|
*/
|
|
public function show(XmlInco $xmlInco): JsonResource
|
|
{
|
|
// * Make sure we are accessing a xmlInco that belongs to our service.
|
|
$this->authorize('arcadiaBrandBelongsToService', $xmlInco->arcadiaBrand);
|
|
|
|
return new XmlIncoResource($xmlInco);
|
|
}
|
|
}
|