Added ability to modify the EDA data via the Part-DB API

This commit is contained in:
Jan Böhmer 2023-12-03 00:57:11 +01:00
parent 9994dbd9db
commit f4b4f14a67
7 changed files with 25 additions and 3 deletions

View file

@ -190,6 +190,7 @@ class Category extends AbstractPartsContainingDBElement
#[Assert\Valid]
#[ORM\Embedded(class: EDACategoryInfo::class)]
#[Groups(['full', 'category:read', 'category:write'])]
protected EDACategoryInfo $eda_info;
public function __construct()

View file

@ -143,6 +143,7 @@ class Footprint extends AbstractPartsContainingDBElement
#[Assert\Valid]
#[ORM\Embedded(class: EDAFootprintInfo::class)]
#[Groups(['full', 'footprint:read', 'footprint:write'])]
protected EDAFootprintInfo $eda_info;
public function __construct()

View file

@ -85,7 +85,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
#[ApiResource(
operations: [
new Get(normalizationContext: ['groups' => ['part:read', 'provider_reference:read', 'api:basic:read', 'part_lot:read',
'orderdetail:read', 'pricedetail:read', 'parameter:read', 'attachment:read'],
'orderdetail:read', 'pricedetail:read', 'parameter:read', 'attachment:read', 'eda_info:read'],
'openapi_definition_name' => 'Read',
], security: 'is_granted("read", object)'),
new GetCollection(security: 'is_granted("@parts.read")'),
@ -94,7 +94,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
new Delete(security: 'is_granted("delete", object)'),
],
normalizationContext: ['groups' => ['part:read', 'provider_reference:read', 'api:basic:read', 'part_lot:read'], 'openapi_definition_name' => 'Read'],
denormalizationContext: ['groups' => ['part:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'],
denormalizationContext: ['groups' => ['part:write', 'api:basic:write', 'eda_info:write'], 'openapi_definition_name' => 'Write'],
)]
#[ApiFilter(PropertyFilter::class)]
#[ApiFilter(EntityFilter::class, properties: ["category", "footprint", "manufacturer", "partUnit"])]

View file

@ -26,12 +26,14 @@ namespace App\Entity\Parts\PartTraits;
use App\Entity\EDA\EDAPartInfo;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Embedded;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints\Valid;
trait EDATrait
{
#[Valid]
#[Embedded(class: EDAPartInfo::class)]
#[Groups(['full', 'part:read', 'part:write'])]
protected EDAPartInfo $eda_info;
public function getEdaInfo(): EDAPartInfo