init
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
namespace Magento\TestModule1\Controller;
|
||||
|
||||
use Magento\Framework\App\RequestInterface;
|
||||
use Magento\Framework\Stdlib\Cookie\CookieMetadataFactory;
|
||||
use Magento\Framework\Stdlib\Cookie\PhpCookieManager;
|
||||
|
||||
/**
|
||||
* Controller for testing the CookieManager.
|
||||
*
|
||||
*/
|
||||
abstract class CookieTester implements \Magento\Framework\App\ActionInterface
|
||||
{
|
||||
/** @var PhpCookieManager */
|
||||
protected $cookieManager;
|
||||
|
||||
/** @var CookieMetadataFactory */
|
||||
protected $cookieMetadataFactory;
|
||||
|
||||
/**
|
||||
* @var \Magento\Framework\App\ResponseInterface
|
||||
*/
|
||||
protected $_response;
|
||||
|
||||
/**
|
||||
* @var
|
||||
*/
|
||||
protected $request;
|
||||
|
||||
/**
|
||||
* @param \Magento\Framework\App\Action\Context $context
|
||||
* @param PhpCookieManager $cookieManager
|
||||
* @param CookieMetadataFactory $cookieMetadataFactory
|
||||
*/
|
||||
public function __construct(
|
||||
\Magento\Framework\App\Action\Context $context,
|
||||
PhpCookieManager $cookieManager,
|
||||
CookieMetadataFactory $cookieMetadataFactory
|
||||
) {
|
||||
$this->cookieManager = $cookieManager;
|
||||
$this->cookieMetadataFactory = $cookieMetadataFactory;
|
||||
$this->_response = $context->getResponse();
|
||||
$this->request = $context->getRequest();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve cookie metadata factory
|
||||
*/
|
||||
protected function getCookieMetadataFactory()
|
||||
{
|
||||
return $this->cookieMetadataFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve cookie metadata factory
|
||||
*/
|
||||
protected function getCookieManager()
|
||||
{
|
||||
return $this->cookieManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dispatch request
|
||||
*
|
||||
* @param RequestInterface $request
|
||||
* @return \Magento\Framework\App\ResponseInterface
|
||||
*/
|
||||
public function dispatch(RequestInterface $request)
|
||||
{
|
||||
$this->request = $request;
|
||||
$result = $this->execute();
|
||||
return $result ? $result : $this->_response;
|
||||
}
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
namespace Magento\TestModule1\Controller\CookieTester;
|
||||
|
||||
use \Magento\Framework\App\RequestInterface;
|
||||
|
||||
/**
|
||||
* Controller to test deletion of a cookie
|
||||
*/
|
||||
class DeleteCookie extends \Magento\TestModule1\Controller\CookieTester
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @return \Magento\Framework\App\ResponseInterface
|
||||
*/
|
||||
public function execute()
|
||||
{
|
||||
$cookieName = $this->request->getParam('cookie_name');
|
||||
$this->getCookieManager()->deleteCookie($cookieName);
|
||||
return $this->_response;
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
namespace Magento\TestModule1\Controller\CookieTester;
|
||||
|
||||
use \Magento\Framework\App\RequestInterface;
|
||||
|
||||
/**
|
||||
*/
|
||||
class SetPublicCookie extends \Magento\TestModule1\Controller\CookieTester
|
||||
{
|
||||
/**
|
||||
* Sets a public cookie with data from url parameters
|
||||
*
|
||||
* @return \Magento\Framework\App\ResponseInterface
|
||||
*/
|
||||
public function execute()
|
||||
{
|
||||
$publicCookieMetadata = $this->getCookieMetadataFactory()->createPublicCookieMetadata();
|
||||
|
||||
$cookieDomain = $this->request->getParam('cookie_domain');
|
||||
if ($cookieDomain !== null) {
|
||||
$publicCookieMetadata->setDomain($cookieDomain);
|
||||
}
|
||||
|
||||
$cookiePath = $this->request->getParam('cookie_path');
|
||||
if ($cookiePath !== null) {
|
||||
$publicCookieMetadata->setPath($cookiePath);
|
||||
}
|
||||
|
||||
$cookieDuration = $this->request->getParam('cookie_duration');
|
||||
if ($cookieDuration !== null) {
|
||||
$publicCookieMetadata->setDuration($cookieDuration);
|
||||
}
|
||||
|
||||
$httpOnly = $this->request->getParam('cookie_httponly');
|
||||
if ($httpOnly !== null) {
|
||||
$publicCookieMetadata->setHttpOnly($httpOnly);
|
||||
}
|
||||
|
||||
$secure = $this->request->getParam('cookie_secure');
|
||||
if ($secure !== null) {
|
||||
$publicCookieMetadata->setSecure($secure);
|
||||
}
|
||||
|
||||
$cookieName = $this->request->getParam('cookie_name');
|
||||
$cookieValue = $this->request->getParam('cookie_value');
|
||||
$this->getCookieManager()->setPublicCookie($cookieName, $cookieValue, $publicCookieMetadata);
|
||||
return $this->_response;
|
||||
}
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
namespace Magento\TestModule1\Controller\CookieTester;
|
||||
|
||||
use \Magento\Framework\App\RequestInterface;
|
||||
|
||||
/**
|
||||
*/
|
||||
class SetSensitiveCookie extends \Magento\TestModule1\Controller\CookieTester
|
||||
{
|
||||
/**
|
||||
* Sets a sensitive cookie with data from url parameters
|
||||
*
|
||||
* @return \Magento\Framework\App\ResponseInterface
|
||||
*/
|
||||
public function execute()
|
||||
{
|
||||
$sensitiveCookieMetadata = $this->getCookieMetadataFactory()->createSensitiveCookieMetadata();
|
||||
|
||||
$cookieDomain = $this->request->getParam('cookie_domain');
|
||||
if ($cookieDomain !== null) {
|
||||
$sensitiveCookieMetadata->setDomain($cookieDomain);
|
||||
}
|
||||
$cookiePath = $this->request->getParam('cookie_domain');
|
||||
if ($cookiePath !== null) {
|
||||
$sensitiveCookieMetadata->setPath($cookiePath);
|
||||
}
|
||||
|
||||
$cookieName = $this->request->getParam('cookie_name');
|
||||
$cookieValue = $this->request->getParam('cookie_value');
|
||||
$this->getCookieManager()->setSensitiveCookie($cookieName, $cookieValue, $sensitiveCookieMetadata);
|
||||
return $this->_response;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
namespace Magento\TestModule1\Service\V1;
|
||||
|
||||
use Magento\TestModuleMSC\Model\Data\CustomAttributeDataObjectFactory;
|
||||
use Magento\TestModule1\Service\V1\Entity\Item;
|
||||
use Magento\TestModule1\Service\V1\Entity\ItemFactory;
|
||||
|
||||
class AllSoapAndRest implements \Magento\TestModule1\Service\V1\AllSoapAndRestInterface
|
||||
{
|
||||
/**
|
||||
* @var ItemFactory
|
||||
*/
|
||||
protected $itemFactory;
|
||||
|
||||
/**
|
||||
* @var CustomAttributeDataObjectFactory
|
||||
*/
|
||||
protected $customAttributeDataObjectFactory;
|
||||
|
||||
/**
|
||||
* @param ItemFactory $itemFactory
|
||||
* @param CustomAttributeDataObjectFactory $customAttributeNestedDataObjectFactory
|
||||
*/
|
||||
public function __construct(
|
||||
ItemFactory $itemFactory,
|
||||
CustomAttributeDataObjectFactory $customAttributeNestedDataObjectFactory
|
||||
) {
|
||||
$this->itemFactory = $itemFactory;
|
||||
$this->customAttributeDataObjectFactory = $customAttributeNestedDataObjectFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function item($itemId)
|
||||
{
|
||||
return $this->itemFactory->create()->setItemId($itemId)->setName('testProduct1');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function items()
|
||||
{
|
||||
$result1 = $this->itemFactory->create()->setItemId(1)->setName('testProduct1');
|
||||
$result2 = $this->itemFactory->create()->setItemId(2)->setName('testProduct2');
|
||||
|
||||
return [$result1, $result2];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function create($name)
|
||||
{
|
||||
return $this->itemFactory->create()->setItemId(rand())->setName($name);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function update(Item $entityItem)
|
||||
{
|
||||
return $this->itemFactory->create()->setItemId($entityItem->getItemId())
|
||||
->setName('Updated' . $entityItem->getName());
|
||||
}
|
||||
|
||||
public function testOptionalParam($name = null)
|
||||
{
|
||||
if ($name === null) {
|
||||
return $this->itemFactory->create()->setItemId(3)->setName('No Name');
|
||||
} else {
|
||||
return $this->itemFactory->create()->setItemId(3)->setName($name);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function itemAnyType(Item $item)
|
||||
{
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getPreconfiguredItem()
|
||||
{
|
||||
$customAttributeDataObject = $this->customAttributeDataObjectFactory->create()
|
||||
->setName('nameValue')
|
||||
->setCustomAttribute('custom_attribute_int', 1);
|
||||
|
||||
$item = $this->itemFactory->create()
|
||||
->setItemId(1)
|
||||
->setName('testProductAnyType')
|
||||
->setCustomAttribute('custom_attribute_data_object', $customAttributeDataObject)
|
||||
->setCustomAttribute('custom_attribute_string', 'someStringValue');
|
||||
|
||||
return $item;
|
||||
}
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
namespace Magento\TestModule1\Service\V1;
|
||||
|
||||
use Magento\TestModule1\Service\V1\Entity\Item;
|
||||
|
||||
interface AllSoapAndRestInterface
|
||||
{
|
||||
/**
|
||||
* @param int $itemId
|
||||
* @return \Magento\TestModule1\Service\V1\Entity\Item
|
||||
*/
|
||||
public function item($itemId);
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @return \Magento\TestModule1\Service\V1\Entity\Item
|
||||
*/
|
||||
public function create($name);
|
||||
|
||||
/**
|
||||
* @param \Magento\TestModule1\Service\V1\Entity\Item $entityItem
|
||||
* @return \Magento\TestModule1\Service\V1\Entity\Item
|
||||
*/
|
||||
public function update(Item $entityItem);
|
||||
|
||||
/**
|
||||
* @return \Magento\TestModule1\Service\V1\Entity\Item[]
|
||||
*/
|
||||
public function items();
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @return \Magento\TestModule1\Service\V1\Entity\Item
|
||||
*/
|
||||
public function testOptionalParam($name = null);
|
||||
|
||||
/**
|
||||
* @param \Magento\TestModule1\Service\V1\Entity\Item $entityItem
|
||||
* @return \Magento\TestModule1\Service\V1\Entity\Item
|
||||
*/
|
||||
public function itemAnyType(Item $entityItem);
|
||||
|
||||
/**
|
||||
* @return \Magento\TestModule1\Service\V1\Entity\Item
|
||||
*/
|
||||
public function getPreconfiguredItem();
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
namespace Magento\TestModule1\Service\V1\Entity;
|
||||
|
||||
class Item extends \Magento\Framework\Api\AbstractExtensibleObject
|
||||
{
|
||||
/**#@+
|
||||
* Custom attribute code constants
|
||||
*/
|
||||
const CUSTOM_ATTRIBUTE_1 = 'custom_attribute1';
|
||||
const CUSTOM_ATTRIBUTE_2 = 'custom_attribute2';
|
||||
const CUSTOM_ATTRIBUTE_3 = 'custom_attribute3';
|
||||
/**#@-*/
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getItemId()
|
||||
{
|
||||
return $this->_data['item_id'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $itemId
|
||||
* @return $this
|
||||
*/
|
||||
public function setItemId($itemId)
|
||||
{
|
||||
return $this->setData('item_id', $itemId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return $this->_data['name'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @return $this
|
||||
*/
|
||||
public function setName($name)
|
||||
{
|
||||
return $this->setData('name', $name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Template method used to configure the attribute codes for the custom attributes
|
||||
*
|
||||
* @return string[]
|
||||
*/
|
||||
protected function getCustomAttributesCodes()
|
||||
{
|
||||
return array_merge(
|
||||
parent::getCustomAttributesCodes(),
|
||||
[self::CUSTOM_ATTRIBUTE_1, self::CUSTOM_ATTRIBUTE_2, self::CUSTOM_ATTRIBUTE_3]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
namespace Magento\TestModule1\Service\V2;
|
||||
|
||||
use Magento\TestModule1\Service\V2\Entity\Item;
|
||||
use Magento\TestModule1\Service\V2\Entity\ItemFactory;
|
||||
|
||||
class AllSoapAndRest implements \Magento\TestModule1\Service\V2\AllSoapAndRestInterface
|
||||
{
|
||||
/**
|
||||
* @var ItemFactory
|
||||
*/
|
||||
protected $itemFactory;
|
||||
|
||||
/**
|
||||
* @param ItemFactory $itemFactory
|
||||
*/
|
||||
public function __construct(ItemFactory $itemFactory)
|
||||
{
|
||||
$this->itemFactory = $itemFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function item($id)
|
||||
{
|
||||
return $this->itemFactory->create()->setId($id)->setName('testProduct1')->setPrice('1');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function items($filters = [], $sortOrder = 'ASC')
|
||||
{
|
||||
$result = [];
|
||||
$firstItem = $this->itemFactory->create()->setId(1)->setName('testProduct1')->setPrice('1');
|
||||
$secondItem = $this->itemFactory->create()->setId(2)->setName('testProduct2')->setPrice('2');
|
||||
|
||||
/** Simple filtration implementation */
|
||||
if (!empty($filters)) {
|
||||
/** @var \Magento\Framework\Api\Filter $filter */
|
||||
foreach ($filters as $filter) {
|
||||
if ('id' == $filter->getField() && $filter->getValue() == 1) {
|
||||
$result[] = $firstItem;
|
||||
} elseif ('id' == $filter->getField() && $filter->getValue() == 2) {
|
||||
$result[] = $secondItem;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/** No filter is specified. */
|
||||
$result = [$firstItem, $secondItem];
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function create($name)
|
||||
{
|
||||
return $this->itemFactory->create()->setId(rand())->setName($name)->setPrice('10');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function update(Item $entityItem)
|
||||
{
|
||||
return $this->itemFactory->create()
|
||||
->setId($entityItem->getId())
|
||||
->setName('Updated' . $entityItem->getName())
|
||||
->setPrice('5');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function delete($id)
|
||||
{
|
||||
return $this->itemFactory->create()->setId($id)->setName('testProduct1')->setPrice('1');
|
||||
}
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
namespace Magento\TestModule1\Service\V2;
|
||||
|
||||
use Magento\TestModule1\Service\V2\Entity\Item;
|
||||
|
||||
interface AllSoapAndRestInterface
|
||||
{
|
||||
/**
|
||||
* Get item.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Magento\TestModule1\Service\V2\Entity\Item
|
||||
*/
|
||||
public function item($id);
|
||||
|
||||
/**
|
||||
* Create item.
|
||||
*
|
||||
* @param string $name
|
||||
* @return \Magento\TestModule1\Service\V2\Entity\Item
|
||||
*/
|
||||
public function create($name);
|
||||
|
||||
/**
|
||||
* Update item.
|
||||
*
|
||||
* @param \Magento\TestModule1\Service\V2\Entity\Item $entityItem
|
||||
* @return \Magento\TestModule1\Service\V2\Entity\Item
|
||||
*/
|
||||
public function update(Item $entityItem);
|
||||
|
||||
/**
|
||||
* Retrieve a list of items.
|
||||
*
|
||||
* @param \Magento\Framework\Api\Filter[] $filters
|
||||
* @param string $sortOrder
|
||||
* @return \Magento\TestModule1\Service\V2\Entity\Item[]
|
||||
*/
|
||||
public function items($filters = [], $sortOrder = 'ASC');
|
||||
|
||||
/**
|
||||
* Delete an item.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Magento\TestModule1\Service\V2\Entity\Item
|
||||
*/
|
||||
public function delete($id);
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
namespace Magento\TestModule1\Service\V2\Entity;
|
||||
|
||||
class Item extends \Magento\Framework\Api\AbstractExtensibleObject
|
||||
{
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->_data['id'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
* @return $this
|
||||
*/
|
||||
public function setId($id)
|
||||
{
|
||||
return $this->setData('id', $id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return $this->_data['name'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @return $this
|
||||
*/
|
||||
public function setName($name)
|
||||
{
|
||||
return $this->setData('name', $name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getPrice()
|
||||
{
|
||||
return $this->_data['price'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $price
|
||||
* @return $this
|
||||
*/
|
||||
public function setPrice($price)
|
||||
{
|
||||
return $this->setData('price', $price);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
-->
|
||||
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd">
|
||||
<acl>
|
||||
<resources>
|
||||
<resource id="Magento_Backend::admin">
|
||||
<resource id="Magento_TestModule1::all" title="TestModule1" sortOrder="1">
|
||||
<resource id="Magento_TestModule1::resource1" title="Resource1" sortOrder="20"/>
|
||||
<resource id="Magento_TestModule1::resource2" title="Resource2" sortOrder="10"/>
|
||||
<resource id="Magento_TestModule1::resource3" title="Resource3" sortOrder="30"/>
|
||||
</resource>
|
||||
</resource>
|
||||
</resources>
|
||||
</acl>
|
||||
</config>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
-->
|
||||
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
|
||||
<default>
|
||||
<oauth>
|
||||
<consumer>
|
||||
<enable_integration_as_bearer>1</enable_integration_as_bearer>
|
||||
</consumer>
|
||||
</oauth>
|
||||
</default>
|
||||
</config>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
-->
|
||||
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
|
||||
<preference for="Magento\TestModule1\Service\V1\AllSoapAndRestInterface" type="Magento\TestModule1\Service\V1\AllSoapAndRest" />
|
||||
<preference for="Magento\TestModule1\Service\V2\AllSoapAndRestInterface" type="Magento\TestModule1\Service\V2\AllSoapAndRest" />
|
||||
|
||||
<virtualType name="Magento\TestModule1\Service\Config\TestModule1MetadataConfig" type="Magento\Framework\Api\ExtensionAttribute\Config\MetadataConfig">
|
||||
<arguments>
|
||||
<argument name="attributeMetadataBuilder" xsi:type="object">Magento\TestModuleMSC\Model\Data\Eav\AttributeMetadataBuilder</argument>
|
||||
<argument name="dataObjectClassName" xsi:type="string">Magento\TestModule1\Service\V1\Entity\Item</argument>
|
||||
</arguments>
|
||||
</virtualType>
|
||||
<type name="Magento\TestModule1\Service\V1\Entity\ItemBuilder">
|
||||
<arguments>
|
||||
<argument name="metadataService" xsi:type="object">Magento\TestModule1\Service\Config\TestModule1MetadataConfig</argument>
|
||||
</arguments>
|
||||
</type>
|
||||
</config>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
-->
|
||||
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
|
||||
<extension_attributes for="Magento\TestModule1\Service\V1\Entity\Item">
|
||||
<attribute code="custom_attribute_data_object" type="Magento\TestModuleMSC\Model\Data\CustomAttributeDataObject" />
|
||||
<attribute code="custom_attribute_string" type="string" />
|
||||
</extension_attributes>
|
||||
<extension_attributes for="Magento\TestModuleMSC\Model\Data\CustomAttributeDataObject">
|
||||
<attribute code="custom_attribute_nested" type="Magento\TestModuleMSC\Model\Data\CustomAttributeNestedDataObject" />
|
||||
<attribute code="custom_attribute_int" type="int" />
|
||||
</extension_attributes>
|
||||
</config>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
-->
|
||||
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
|
||||
<router id="standard">
|
||||
<route id="testmoduleone" frontName="testmoduleone">
|
||||
<module name="Magento_TestModule1" />
|
||||
</route>
|
||||
</router>
|
||||
</config>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
-->
|
||||
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
|
||||
<module name="Magento_TestModule1" />
|
||||
</config>
|
||||
@@ -0,0 +1,116 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
-->
|
||||
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Webapi:etc/webapi.xsd">
|
||||
|
||||
<route method="GET" url="/V1/testmodule1/overwritten">
|
||||
<service class="Magento\TestModule1\Service\V1\AllSoapAndRestInterface" method="item" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource1" />
|
||||
</resources>
|
||||
<data>
|
||||
<parameter name="itemId" force="true">-55</parameter>
|
||||
</data>
|
||||
</route>
|
||||
|
||||
<route method="POST" url="/V1/testmodule1/testOptionalParam">
|
||||
<service class="Magento\TestModule1\Service\V1\AllSoapAndRestInterface" method="testOptionalParam" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource1" />
|
||||
</resources>
|
||||
<data>
|
||||
<parameter name="name">Default Name</parameter>
|
||||
</data>
|
||||
</route>
|
||||
|
||||
<route method="GET" url="/V1/testmodule1/:itemId">
|
||||
<service class="Magento\TestModule1\Service\V1\AllSoapAndRestInterface" method="item" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource1" />
|
||||
</resources>
|
||||
</route>
|
||||
<route method="GET" url="/V1/testmodule1">
|
||||
<service class="Magento\TestModule1\Service\V1\AllSoapAndRestInterface" method="items" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource2" />
|
||||
</resources>
|
||||
</route>
|
||||
<route method="POST" url="/V1/testmodule1">
|
||||
<service class="Magento\TestModule1\Service\V1\AllSoapAndRestInterface" method="create" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource3" />
|
||||
</resources>
|
||||
</route>
|
||||
<route method="PUT" url="/V1/testmodule1/:itemId">
|
||||
<service class="Magento\TestModule1\Service\V1\AllSoapAndRestInterface" method="update" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource1" />
|
||||
<resource ref="Magento_TestModule1::resource2" />
|
||||
</resources>
|
||||
</route>
|
||||
<route method="GET" url="/V1/testmodule1/resource1/:itemId">
|
||||
<service class="Magento\TestModule1\Service\V1\AllSoapAndRestInterface" method="item" />
|
||||
<resources>
|
||||
<resource ref="anonymous" />
|
||||
</resources>
|
||||
</route>
|
||||
<route method="POST" url="/V1/testmodule1/itemAnyType">
|
||||
<service class="Magento\TestModule1\Service\V1\AllSoapAndRestInterface" method="itemAnyType" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource1" />
|
||||
<resource ref="Magento_TestModule1::resource2" />
|
||||
</resources>
|
||||
</route>
|
||||
<route method="GET" url="/V1/testmodule1/itemPreconfigured">
|
||||
<service class="Magento\TestModule1\Service\V1\AllSoapAndRestInterface" method="getPreconfiguredItem" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource1" />
|
||||
<resource ref="Magento_TestModule1::resource2" />
|
||||
</resources>
|
||||
</route>
|
||||
<route method="PUT" url="/V1/testmodule1/withParam">
|
||||
<service class="Magento\TestModule1\Service\V1\AllSoapAndRestInterface" method="update" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource1" />
|
||||
<resource ref="Magento_TestModule1::resource2" />
|
||||
</resources>
|
||||
<data>
|
||||
<parameter name="paramId" force="true">%param_id%</parameter>
|
||||
</data>
|
||||
</route>
|
||||
<route method="GET" url="/V2/testmodule1/:id">
|
||||
<service class="Magento\TestModule1\Service\V2\AllSoapAndRestInterface" method="item" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource1" />
|
||||
</resources>
|
||||
</route>
|
||||
<route method="GET" url="/V2/testmodule1">
|
||||
<service class="Magento\TestModule1\Service\V2\AllSoapAndRestInterface" method="items" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource2" />
|
||||
</resources>
|
||||
</route>
|
||||
<route method="POST" url="/V2/testmodule1">
|
||||
<service class="Magento\TestModule1\Service\V2\AllSoapAndRestInterface" method="create" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource3" />
|
||||
</resources>
|
||||
</route>
|
||||
<route method="PUT" url="/V2/testmodule1/:id">
|
||||
<service class="Magento\TestModule1\Service\V2\AllSoapAndRestInterface" method="update" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource1" />
|
||||
<resource ref="Magento_TestModule1::resource2" />
|
||||
</resources>
|
||||
</route>
|
||||
<route method="DELETE" url="/V2/testmodule1/:id">
|
||||
<service class="Magento\TestModule1\Service\V2\AllSoapAndRestInterface" method="delete" />
|
||||
<resources>
|
||||
<resource ref="Magento_TestModule1::resource1" />
|
||||
</resources>
|
||||
</route>
|
||||
</routes>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright © Magento, Inc. All rights reserved.
|
||||
* See COPYING.txt for license details.
|
||||
*/
|
||||
|
||||
use Magento\Framework\Component\ComponentRegistrar;
|
||||
|
||||
$registrar = new ComponentRegistrar();
|
||||
if ($registrar->getPath(ComponentRegistrar::MODULE, 'Magento_TestModule1') === null) {
|
||||
ComponentRegistrar::register(ComponentRegistrar::MODULE, 'Magento_TestModule1', __DIR__);
|
||||
}
|
||||
Reference in New Issue
Block a user