mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-03-14 11:19:35 +00:00
/api/part_lots: add user_barcode filter (#1280)
* /api/part_lots: add user_barcode filter * support LIKE filtering for part lot user_barcode
This commit is contained in:
parent
0d58262e19
commit
3ed27f6c0f
2 changed files with 27 additions and 1 deletions
|
|
@ -81,7 +81,7 @@ 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'])]
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,32 @@ 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 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