/api/part_lots: add user_barcode filter

This commit is contained in:
MayNiklas 2026-03-03 14:15:54 +01:00
parent 32a666f6c3
commit 5a6b270525
2 changed files with 15 additions and 0 deletions

View file

@ -27,6 +27,7 @@ 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;
@ -85,6 +86,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
#[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
{ {

View file

@ -47,6 +47,19 @@ final class PartLotsEndpointTest extends CrudEndpointTestCase
$this->_testGetItem(2); $this->_testGetItem(2);
} }
public function testFilterByUserBarcode(): void
{
$response = self::createAuthenticatedClient()->request('GET', '/api/part_lots?user_barcode=lot2_vendor_barcode');
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([