openstamanager/app/Restify/Repository.php

53 lines
1.5 KiB
PHP

<?php
namespace App\Restify;
use Binaryk\LaravelRestify\Filters\MatchFilter;
use Binaryk\LaravelRestify\Http\Requests\RestifyRequest;
use Binaryk\LaravelRestify\Repositories\Repository as RestifyRepository;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Relations\Relation;
abstract class Repository extends RestifyRepository
{
public static array $sort = ['id'];
/**
* Build a "show" and "index" query for the given repository.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function mainQuery(RestifyRequest $request, Builder|Relation $query)
{
return $query;
}
/**
* Build an "index" query for the given repository.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function indexQuery(RestifyRequest $request, Builder|Relation $query)
{
return $query;
}
/**
* Build a "show" query for the given repository.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function showQuery(RestifyRequest $request, Builder|Relation $query)
{
return $query;
}
public static function matches(): array
{
return array_map(static fn (string $type) => MatchFilter::make()->setType($type)->partial(), static::$match);
}
}