Files
animethemes-server/app/Http/Api/Field/Base/CreatedAtField.php
T

58 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Http\Api\Field\Base;
use App\Http\Api\Field\DateField;
use App\Http\Api\Query\Query;
use App\Http\Api\Schema\Schema;
use App\Models\BaseModel;
/**
* Class CreatedAtField.
*/
class CreatedAtField extends DateField
{
/**
* Create a new field instance.
*
* @param Schema $schema
*/
public function __construct(Schema $schema)
{
parent::__construct($schema, BaseModel::ATTRIBUTE_CREATED_AT);
}
/**
* Determine if the field should be displayed to the user.
*
* @param Query $query
* @return bool
*
* @noinspection PhpMissingParentCallCommonInspection
*/
public function shouldRender(Query $query): bool
{
$criteria = $query->getFieldCriteria($this->schema->type());
return $criteria !== null && $criteria->isAllowedField($this->getKey());
}
/**
* Determine if the field should be included in the select clause of our query.
*
* @param Query $query
* @param Schema $schema
* @return bool
*
* @noinspection PhpMissingParentCallCommonInspection
*/
public function shouldSelect(Query $query, Schema $schema): bool
{
$criteria = $query->getFieldCriteria($this->schema->type());
return $criteria !== null && $criteria->isAllowedField($this->getKey());
}
}