mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-05-19 18:01:30 +00:00
support LIKE filtering for part lot user_barcode
This commit is contained in:
parent
5a6b270525
commit
b6717f8c0e
2 changed files with 14 additions and 3 deletions
|
|
@ -27,7 +27,6 @@ use ApiPlatform\Doctrine\Orm\Filter\BooleanFilter;
|
||||||
use ApiPlatform\Doctrine\Orm\Filter\DateFilter;
|
use ApiPlatform\Doctrine\Orm\Filter\DateFilter;
|
||||||
use ApiPlatform\Doctrine\Orm\Filter\OrderFilter;
|
use ApiPlatform\Doctrine\Orm\Filter\OrderFilter;
|
||||||
use ApiPlatform\Doctrine\Orm\Filter\RangeFilter;
|
use ApiPlatform\Doctrine\Orm\Filter\RangeFilter;
|
||||||
use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
|
|
||||||
use ApiPlatform\Metadata\ApiFilter;
|
use ApiPlatform\Metadata\ApiFilter;
|
||||||
use ApiPlatform\Metadata\ApiProperty;
|
use ApiPlatform\Metadata\ApiProperty;
|
||||||
use ApiPlatform\Metadata\ApiResource;
|
use ApiPlatform\Metadata\ApiResource;
|
||||||
|
|
@ -82,11 +81,10 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||||
denormalizationContext: ['groups' => ['part_lot:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'],
|
denormalizationContext: ['groups' => ['part_lot:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'],
|
||||||
)]
|
)]
|
||||||
#[ApiFilter(PropertyFilter::class)]
|
#[ApiFilter(PropertyFilter::class)]
|
||||||
#[ApiFilter(LikeFilter::class, properties: ["description", "comment"])]
|
#[ApiFilter(LikeFilter::class, properties: ["description", "comment", "user_barcode"])]
|
||||||
#[ApiFilter(DateFilter::class, strategy: DateFilterInterface::EXCLUDE_NULL)]
|
#[ApiFilter(DateFilter::class, strategy: DateFilterInterface::EXCLUDE_NULL)]
|
||||||
#[ApiFilter(BooleanFilter::class, properties: ['instock_unknown', 'needs_refill'])]
|
#[ApiFilter(BooleanFilter::class, properties: ['instock_unknown', 'needs_refill'])]
|
||||||
#[ApiFilter(RangeFilter::class, properties: ['amount'])]
|
#[ApiFilter(RangeFilter::class, properties: ['amount'])]
|
||||||
#[ApiFilter(SearchFilter::class, properties: ['user_barcode' => 'exact'])]
|
|
||||||
#[ApiFilter(OrderFilter::class, properties: ['description', 'comment', 'addedDate', 'lastModified'])]
|
#[ApiFilter(OrderFilter::class, properties: ['description', 'comment', 'addedDate', 'lastModified'])]
|
||||||
class PartLot extends AbstractDBElement implements TimeStampableInterface, NamedElementInterface
|
class PartLot extends AbstractDBElement implements TimeStampableInterface, NamedElementInterface
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,19 @@ final class PartLotsEndpointTest extends CrudEndpointTestCase
|
||||||
self::assertSame('/api/part_lots/2', $json['hydra:member'][0]['@id']);
|
self::assertSame('/api/part_lots/2', $json['hydra:member'][0]['@id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testFilterByUserBarcodeUsingWildcard(): void
|
||||||
|
{
|
||||||
|
$response = self::createAuthenticatedClient()->request('GET', '/api/part_lots?user_barcode=lot2_%');
|
||||||
|
|
||||||
|
self::assertResponseIsSuccessful();
|
||||||
|
self::assertJsonContains([
|
||||||
|
'hydra:totalItems' => 1,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$json = $response->toArray();
|
||||||
|
self::assertSame('/api/part_lots/2', $json['hydra:member'][0]['@id']);
|
||||||
|
}
|
||||||
|
|
||||||
public function testCreateItem(): void
|
public function testCreateItem(): void
|
||||||
{
|
{
|
||||||
$this->_testPostItem([
|
$this->_testPostItem([
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue