mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-22 09:53:35 +02:00
Allow to create attachments and parameters via PATCH operations on their owning elemens as direct POST operations are not possible yet
This partly fixes issue #502
This commit is contained in:
parent
3548f12deb
commit
7ae0fad356
11 changed files with 11 additions and 11 deletions
|
@ -153,7 +153,7 @@ abstract class Attachment extends AbstractNamedDBElement
|
||||||
#[ORM\ManyToOne(targetEntity: AttachmentType::class, inversedBy: 'attachments_with_type')]
|
#[ORM\ManyToOne(targetEntity: AttachmentType::class, inversedBy: 'attachments_with_type')]
|
||||||
#[ORM\JoinColumn(name: 'type_id', nullable: false)]
|
#[ORM\JoinColumn(name: 'type_id', nullable: false)]
|
||||||
#[Selectable()]
|
#[Selectable()]
|
||||||
#[Groups(['attachment:read', 'attachment_write'])]
|
#[Groups(['attachment:read', 'attachment:write'])]
|
||||||
protected ?AttachmentType $attachment_type = null;
|
protected ?AttachmentType $attachment_type = null;
|
||||||
|
|
||||||
#[Groups(['attachment:read'])]
|
#[Groups(['attachment:read'])]
|
||||||
|
|
|
@ -66,7 +66,7 @@ use Symfony\Component\Validator\Constraints as Assert;
|
||||||
new Delete(security: 'is_granted("delete", object)'),
|
new Delete(security: 'is_granted("delete", object)'),
|
||||||
],
|
],
|
||||||
normalizationContext: ['groups' => ['attachment_type:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
normalizationContext: ['groups' => ['attachment_type:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
||||||
denormalizationContext: ['groups' => ['attachment_type:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'],
|
denormalizationContext: ['groups' => ['attachment_type:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'],
|
||||||
)]
|
)]
|
||||||
#[ApiResource(
|
#[ApiResource(
|
||||||
uriTemplate: '/attachment_types/{id}/children.{_format}',
|
uriTemplate: '/attachment_types/{id}/children.{_format}',
|
||||||
|
|
|
@ -71,7 +71,7 @@ use Symfony\Component\Validator\Constraints as Assert;
|
||||||
new Delete(security: 'is_granted("delete", object)'),
|
new Delete(security: 'is_granted("delete", object)'),
|
||||||
],
|
],
|
||||||
normalizationContext: ['groups' => ['category:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
normalizationContext: ['groups' => ['category:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
||||||
denormalizationContext: ['groups' => ['category:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'],
|
denormalizationContext: ['groups' => ['category:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'],
|
||||||
)]
|
)]
|
||||||
#[ApiResource(
|
#[ApiResource(
|
||||||
uriTemplate: '/categories/{id}/children.{_format}',
|
uriTemplate: '/categories/{id}/children.{_format}',
|
||||||
|
|
|
@ -72,7 +72,7 @@ use Symfony\Component\Validator\Constraints as Assert;
|
||||||
new Delete(security: 'is_granted("delete", object)'),
|
new Delete(security: 'is_granted("delete", object)'),
|
||||||
],
|
],
|
||||||
normalizationContext: ['groups' => ['footprint:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
normalizationContext: ['groups' => ['footprint:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
||||||
denormalizationContext: ['groups' => ['footprint:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'],
|
denormalizationContext: ['groups' => ['footprint:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'],
|
||||||
)]
|
)]
|
||||||
#[ApiResource(
|
#[ApiResource(
|
||||||
uriTemplate: '/footprints/{id}/children.{_format}',
|
uriTemplate: '/footprints/{id}/children.{_format}',
|
||||||
|
|
|
@ -67,7 +67,7 @@ use Symfony\Component\Validator\Constraints as Assert;
|
||||||
new Delete(security: 'is_granted("delete", object)'),
|
new Delete(security: 'is_granted("delete", object)'),
|
||||||
],
|
],
|
||||||
normalizationContext: ['groups' => ['manufacturer:read', 'company:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
normalizationContext: ['groups' => ['manufacturer:read', 'company:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
||||||
denormalizationContext: ['groups' => ['manufacturer:write', 'company:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'],
|
denormalizationContext: ['groups' => ['manufacturer:write', 'company:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'],
|
||||||
)]
|
)]
|
||||||
#[ApiResource(
|
#[ApiResource(
|
||||||
uriTemplate: '/manufacturers/{id}/children.{_format}',
|
uriTemplate: '/manufacturers/{id}/children.{_format}',
|
||||||
|
|
|
@ -71,7 +71,7 @@ use Symfony\Component\Validator\Constraints as Assert;
|
||||||
new Delete(security: 'is_granted("delete", object)'),
|
new Delete(security: 'is_granted("delete", object)'),
|
||||||
],
|
],
|
||||||
normalizationContext: ['groups' => ['measurement_unit:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
normalizationContext: ['groups' => ['measurement_unit:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
||||||
denormalizationContext: ['groups' => ['measurement_unit:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'],
|
denormalizationContext: ['groups' => ['measurement_unit:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'],
|
||||||
)]
|
)]
|
||||||
#[ApiResource(
|
#[ApiResource(
|
||||||
uriTemplate: '/footprints/{id}/children.{_format}',
|
uriTemplate: '/footprints/{id}/children.{_format}',
|
||||||
|
|
|
@ -89,7 +89,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||||
new Delete(security: 'is_granted("delete", object)'),
|
new Delete(security: 'is_granted("delete", object)'),
|
||||||
],
|
],
|
||||||
normalizationContext: ['groups' => ['part:read', 'provider_reference:read', 'api:basic:read', 'part_lot:read'], 'openapi_definition_name' => 'Read'],
|
normalizationContext: ['groups' => ['part:read', 'provider_reference:read', 'api:basic:read', 'part_lot:read'], 'openapi_definition_name' => 'Read'],
|
||||||
denormalizationContext: ['groups' => ['part:write', 'api:basic:write', 'eda_info:write'], 'openapi_definition_name' => 'Write'],
|
denormalizationContext: ['groups' => ['part:write', 'api:basic:write', 'eda_info:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'],
|
||||||
)]
|
)]
|
||||||
#[ApiFilter(PropertyFilter::class)]
|
#[ApiFilter(PropertyFilter::class)]
|
||||||
#[ApiFilter(EntityFilter::class, properties: ["category", "footprint", "manufacturer", "partUnit"])]
|
#[ApiFilter(EntityFilter::class, properties: ["category", "footprint", "manufacturer", "partUnit"])]
|
||||||
|
|
|
@ -67,7 +67,7 @@ use Symfony\Component\Validator\Constraints as Assert;
|
||||||
new Delete(security: 'is_granted("delete", object)'),
|
new Delete(security: 'is_granted("delete", object)'),
|
||||||
],
|
],
|
||||||
normalizationContext: ['groups' => ['location:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
normalizationContext: ['groups' => ['location:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
||||||
denormalizationContext: ['groups' => ['location:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'],
|
denormalizationContext: ['groups' => ['location:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'],
|
||||||
)]
|
)]
|
||||||
#[ApiResource(
|
#[ApiResource(
|
||||||
uriTemplate: '/storage_locations/{id}/children.{_format}',
|
uriTemplate: '/storage_locations/{id}/children.{_format}',
|
||||||
|
|
|
@ -72,7 +72,7 @@ use Symfony\Component\Validator\Constraints as Assert;
|
||||||
new Delete(security: 'is_granted("delete", object)'),
|
new Delete(security: 'is_granted("delete", object)'),
|
||||||
],
|
],
|
||||||
normalizationContext: ['groups' => ['supplier:read', 'company:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
normalizationContext: ['groups' => ['supplier:read', 'company:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
||||||
denormalizationContext: ['groups' => ['supplier:write', 'company:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'],
|
denormalizationContext: ['groups' => ['supplier:write', 'company:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'],
|
||||||
)]
|
)]
|
||||||
#[ApiResource(
|
#[ApiResource(
|
||||||
uriTemplate: '/suppliers/{id}/children.{_format}',
|
uriTemplate: '/suppliers/{id}/children.{_format}',
|
||||||
|
|
|
@ -71,7 +71,7 @@ use Symfony\Component\Validator\Constraints as Assert;
|
||||||
new Delete(security: 'is_granted("delete", object)'),
|
new Delete(security: 'is_granted("delete", object)'),
|
||||||
],
|
],
|
||||||
normalizationContext: ['groups' => ['currency:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
normalizationContext: ['groups' => ['currency:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
||||||
denormalizationContext: ['groups' => ['currency:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'],
|
denormalizationContext: ['groups' => ['currency:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'],
|
||||||
)]
|
)]
|
||||||
#[ApiResource(
|
#[ApiResource(
|
||||||
uriTemplate: '/currencies/{id}/children.{_format}',
|
uriTemplate: '/currencies/{id}/children.{_format}',
|
||||||
|
|
|
@ -70,7 +70,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
|
||||||
new Delete(security: 'is_granted("delete", object)'),
|
new Delete(security: 'is_granted("delete", object)'),
|
||||||
],
|
],
|
||||||
normalizationContext: ['groups' => ['project:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
normalizationContext: ['groups' => ['project:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'],
|
||||||
denormalizationContext: ['groups' => ['project:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'],
|
denormalizationContext: ['groups' => ['project:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'],
|
||||||
)]
|
)]
|
||||||
#[ApiResource(
|
#[ApiResource(
|
||||||
uriTemplate: '/projects/{id}/children.{_format}',
|
uriTemplate: '/projects/{id}/children.{_format}',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue