Correct ProductTaxon serialization and resource config

This commit is contained in:
Kamil Grygierzec 2024-08-06 15:18:46 +02:00 committed by Grzegorz Sadowski
parent 15d62e235f
commit f716812bca
4 changed files with 41 additions and 158 deletions

View file

@ -16,25 +16,17 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0 https://api-platform.com/schema/metadata/resources-3.0.xsd"
>
<!-- Admin Operations -->
<resource class="Sylius\Component\Core\Model\ProductTaxon">
<validationContext>
<values>
<value name="groups">
<values>
<value>sylius</value>
</values>
</value>
</values>
</validationContext>
<order>
<values>
<value name="position">ASC</value>
</values>
</order>
<operations>
<operation class="ApiPlatform\Metadata\GetCollection" uriTemplate="/admin/product-taxons">
<order>
<values>
<value name="position">ASC</value>
</values>
</order>
<normalizationContext>
<values>
<value name="groups">
@ -44,14 +36,25 @@
</value>
</values>
</normalizationContext>
<filters>
<filter>sylius.api.search_filter.product.code</filter>
<filter>sylius.api.search_filter.taxon.code</filter>
<filter>sylius_api.order_filter.product_taxon</filter>
<filter>sylius_api.search_filter.admin.product_taxon.product_code</filter>
<filter>sylius_api.search_filter.admin.product_taxon.taxon_code</filter>
<filter>sylius_api.order_filter.admin.product_taxon</filter>
</filters>
</operation>
<operation class="ApiPlatform\Metadata\Post" uriTemplate="/admin/product-taxons">
<validationContext>
<values>
<value name="groups">
<values>
<value>sylius</value>
</values>
</value>
</values>
</validationContext>
<denormalizationContext>
<values>
<value name="groups">
@ -61,6 +64,7 @@
</value>
</values>
</denormalizationContext>
<normalizationContext>
<values>
<value name="groups">
@ -85,6 +89,16 @@
</operation>
<operation class="ApiPlatform\Metadata\Put" uriTemplate="/admin/product-taxons/{id}">
<validationContext>
<values>
<value name="groups">
<values>
<value>sylius</value>
</values>
</value>
</values>
</validationContext>
<denormalizationContext>
<values>
<value name="groups">
@ -94,6 +108,7 @@
</value>
</values>
</denormalizationContext>
<normalizationContext>
<values>
<value name="groups">
@ -105,6 +120,10 @@
</normalizationContext>
</operation>
<operation class="ApiPlatform\Metadata\Delete" uriTemplate="/admin/product-taxons/{id}" />
<!-- Shop Operations -->
<operation class="ApiPlatform\Metadata\Get" uriTemplate="/shop/product-taxons/{id}">
<normalizationContext>
<values>
@ -116,10 +135,6 @@
</values>
</normalizationContext>
</operation>
<operation class="ApiPlatform\Metadata\Delete" uriTemplate="/admin/product-taxons/{code}" />
</operations>
</resource>
</resources>

View file

@ -1,111 +0,0 @@
<?xml version="1.0" ?>
<!--
This file is part of the Sylius package.
(c) Sylius Sp. z o.o.
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
-->
<resources xmlns="https://api-platform.com/schema/metadata"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata https://api-platform.com/schema/metadata/metadata-2.0.xsd"
>
<resource class="%sylius.model.product_taxon.class%" shortName="ProductTaxon">
<attribute name="validation_groups">sylius</attribute>
<attribute name="order">
<attribute name="position">ASC</attribute>
</attribute>
<collectionOperations>
<collectionOperation name="admin_get">
<attribute name="method">GET</attribute>
<attribute name="path">/admin/product-taxons</attribute>
<attribute name="filters">
<attribute>sylius.api.search_filter.product.code</attribute>
<attribute>sylius.api.search_filter.taxon.code</attribute>
<attribute>sylius.api.order_filter.position</attribute>
</attribute>
<attribute name="normalization_context">
<attribute name="groups">
<attribute>admin:product_taxon:index</attribute>
<attribute>sylius:admin:product_taxon:index</attribute>
</attribute>
</attribute>
</collectionOperation>
<collectionOperation name="admin_post">
<attribute name="method">POST</attribute>
<attribute name="path">/admin/product-taxons</attribute>
<attribute name="denormalization_context">
<attribute name="groups">
<attribute>admin:product_taxon:create</attribute>
<attribute>sylius:admin:product_taxon:create</attribute>
</attribute>
</attribute>
<attribute name="normalization_context">
<attribute name="groups">
<attribute>admin:product_taxon:show</attribute>
<attribute>sylius:admin:product_taxon:show</attribute>
</attribute>
</attribute>
</collectionOperation>
</collectionOperations>
<itemOperations>
<itemOperation name="admin_get">
<attribute name="method">GET</attribute>
<attribute name="path">/admin/product-taxons/{id}</attribute>
<attribute name="normalization_context">
<attribute name="groups">
<attribute>admin:product_taxon:show</attribute>
<attribute>sylius:admin:product_taxon:show</attribute>
</attribute>
</attribute>
</itemOperation>
<itemOperation name="admin_put">
<attribute name="method">PUT</attribute>
<attribute name="path">/admin/product-taxons/{id}</attribute>
<attribute name="denormalization_context">
<attribute name="groups">
<attribute>admin:product_taxon:update</attribute>
<attribute>sylius:admin:product_taxon:update</attribute>
</attribute>
</attribute>
<attribute name="normalization_context">
<attribute name="groups">
<attribute>admin:product_taxon:show</attribute>
<attribute>sylius:admin:product_taxon:show</attribute>
</attribute>
</attribute>
</itemOperation>
<itemOperation name="shop_get">
<attribute name="method">GET</attribute>
<attribute name="path">/shop/product-taxons/{id}</attribute>
<attribute name="normalization_context">
<attribute name="groups">
<attribute>shop:product_taxon:show</attribute>
<attribute>sylius:shop:product_taxon:show</attribute>
</attribute>
</attribute>
</itemOperation>
<itemOperation name="admin_delete">
<attribute name="method">DELETE</attribute>
<attribute name="path">/admin/product-taxons/{id}</attribute>
</itemOperation>
</itemOperations>
<property name="id" identifier="true" writable="false" />
<property name="product" required="true" />
<property name="taxon" writable="true" />
<property name="position" writable="true" />
</resource>
</resources>

View file

@ -16,44 +16,23 @@
xsi:schemaLocation="http://symfony.com/schema/dic/serializer-mapping https://symfony.com/schema/dic/serializer-mapping/serializer-mapping-1.0.xsd">
<class name="Sylius\Component\Core\Model\ProductTaxon">
<attribute name="id">
<group>admin:product_taxon:index</group>
<group>sylius:admin:product_taxon:index</group>
<group>admin:product_taxon:show</group>
<group>sylius:admin:product_taxon:show</group>
<group>shop:product_taxon:show</group>
<group>sylius:shop:product_taxon:show</group>
</attribute>
<attribute name="taxon">
<group>admin:product_taxon:index</group>
<group>sylius:admin:product_taxon:index</group>
<group>admin:product_taxon:show</group>
<group>sylius:admin:product_taxon:show</group>
<group>admin:product_taxon:create</group>
<group>sylius:admin:product_taxon:create</group>
<group>shop:product_taxon:show</group>
<group>sylius:shop:product_taxon:show</group>
</attribute>
<attribute name="product">
<group>admin:product_taxon:index</group>
<group>sylius:admin:product_taxon:index</group>
<group>admin:product_taxon:show</group>
<group>sylius:admin:product_taxon:show</group>
<group>admin:product_taxon:create</group>
<group>sylius:admin:product_taxon:create</group>
<group>shop:product_taxon:show</group>
<group>sylius:shop:product_taxon:show</group>
</attribute>
<attribute name="position">
<group>admin:product_taxon:index</group>
<group>sylius:admin:product_taxon:index</group>
<group>admin:product_taxon:show</group>
<group>sylius:admin:product_taxon:show</group>
<group>admin:product_taxon:update</group>
<group>sylius:admin:product_taxon:update</group>
<group>admin:product_taxon:create</group>
<group>sylius:admin:product_taxon:create</group>
<group>shop:product_taxon:show</group>
<group>sylius:shop:product_taxon:show</group>
</attribute>
</class>

View file

@ -100,7 +100,7 @@
<tag name="api_platform.filter" />
</service>
<service id="sylius_api.order_filter.product_taxon" parent="api_platform.doctrine.orm.order_filter" public="true">
<service id="sylius_api.order_filter.admin.product_taxon" parent="api_platform.doctrine.orm.order_filter" public="true">
<argument type="collection">
<argument key="position" />
</argument>
@ -370,14 +370,14 @@
<tag name="api_platform.filter" />
</service>
<service id="sylius.api.search_filter.product.code" parent="api_platform.doctrine.orm.search_filter" public="true">
<service id="sylius_api.search_filter.admin.product_taxon.product_code" parent="api_platform.doctrine.orm.search_filter" public="true">
<argument type="collection">
<argument key="product.code">exact</argument>
</argument>
<tag name="api_platform.filter" />
</service>
<service id="sylius.api.search_filter.taxon.code" parent="api_platform.doctrine.orm.search_filter" public="true">
<service id="sylius_api.search_filter.admin.product_taxon.taxon_code" parent="api_platform.doctrine.orm.search_filter" public="true">
<argument type="collection">
<argument key="taxon.code">exact</argument>
</argument>