ldc-flucollector/app/Http/Controllers/Api/XmlIncoController.php
2023-10-03 15:27:16 +02:00

63 lines
1.9 KiB
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Requests\Api\XmlInco\SearchRequest;
use App\Http\Resources\Api\XmlListResource;
use App\Http\Resources\Api\XmlIncoResource;
use App\Models\Service;
use App\Models\XmlInco;
use Illuminate\Contracts\Database\Eloquent\Builder;
use Illuminate\Http\Resources\Json\ResourceCollection;
use Illuminate\Support\Carbon;
class XmlIncoController extends Controller
{
/**
* Returns all service questions.
*
* @param \App\Http\Requests\Api\XmlInco\SearchRequest $request
* @param \App\Models\Service $service
* @return \Illuminate\Http\Resources\Json\ResourceCollection
*/
public function search(SearchRequest $request, Service $service): ResourceCollection
{
return new XmlListResource($service->arcadiaBrand->xmlIncos()
->where(fn (Builder $q) => $this->searchQuery(
$q,
$request->search,
null,
'id',
'name'
))->limit(20)->get(['id', 'name']));
}
/**
* Get ids list of updated resources since a specific date
*
* @param \App\Models\Service $service
* @param \Illuminate\Support\Carbon $api_since
* @return \Illuminate\Http\Resources\Json\ResourceCollection
*/
public function getIdListSince(Service $service, Carbon $api_since): ResourceCollection
{
return new XmlListResource(
$service->arcadiaBrand->xmlIncos()
->where('xml_incos.updated_at', '>=', $api_since)->get(['id', 'name']),
null,
true
);
}
/**
* Show Xml Inco resource
*
* @param \App\Models\XmlInco $api_xml_inco
* @return \App\Http\Resources\Api\XmlIncoResource
*/
public function show(XmlInco $api_xml_inco): XmlIncoResource
{
return new XmlIncoResource($api_xml_inco);
}
}