63 lines
1.9 KiB
PHP
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);
|
|
}
|
|
}
|