Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CC-11958: Categories per store: Forward compatibility. #10

Merged
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ sudo: required
matrix:
fast_finish: true
include:
- php: 7.2
- php: 7.3
env:
- PRODUCT_NAME=suite

- php: 7.2
- php: 7.3
env:
- PRODUCT_NAME=b2c-demo-shop

- php: 7.2
- php: 7.3
env:
- PRODUCT_NAME=b2b-demo-shop

Expand All @@ -27,7 +27,7 @@ services:
- rabbitmq

addons:
postgresql: 9.4
postgresql: "12"

apt:
packages:
Expand All @@ -39,12 +39,13 @@ addons:

env:
global:
- APPLICATION_ENV=devtest
- APPLICATION_ENV=ci.pgsql
- SPRYKER_TESTING_ENABLED=1
- APPLICATION_STORE=DE
- MODULE_DIR=module
- SHOP_DIR=current
- MODULE_NAME=coremedia
- POSTGRES_PORT=5432
- POSTGRES_PORT=5433

cache:
directories:
Expand All @@ -56,5 +57,5 @@ before_install:
- phpenv config-rm xdebug.ini

script:
- git clone -b 0.3.0 https://github.com/spryker-eco/eco-ci.git ecoci
- git clone -b bugfix/spryker-shop-suite-contains-no-ci-scripts --single-branch https://github.com/spryker-eco/eco-ci.git ecoci
- ./ecoci/build/travis.sh
21 changes: 13 additions & 8 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,32 @@
"description": "Coremedia module",
"license": "proprietary",
"require": {
"php": ">=7.1",
"spryker-shop/shop-cms-slot-extension": "^0.2.0",
"spryker/category-storage": "^1.0.0",
"php": ">=7.3",
"psr/http-message": "^1.0.0",
"spryker-shop/shop-cms-slot-extension": "^1.0.0",
"spryker/category-storage": "^1.11.0",
"spryker/error-handler": "^2.1.3",
"spryker/guzzle": "^2.2.0",
"spryker/kernel": "^3.30.0",
"spryker/money": "^2.6.0",
"spryker/price-product": "^2.0.0 || ^4.0.0",
"spryker/price-product-storage": "^2.2.0 || ^4.0.0",
"spryker/product-storage": "^1.2.0",
"spryker/store": "^1.4.0",
"spryker/symfony": "^3.0.0",
"spryker/synchronization-behavior": "^1.0.0",
"spryker/util-encoding": "^1.0.0 || ^2.0.0"
},
"require-dev": {
"spryker/code-sniffer": "*",
"spryker/search": "*",
"spryker/testify": "*"
},
"autoload": {
"psr-4": {
"SprykerEco\\": "src/SprykerEco/",
"SprykerEcoTest\\Client\\Coremedia\\Helper\\": "tests/SprykerEcoTest/Client/Coremedia/_support/Helper/"
"SprykerEcoTest\\Client\\Coremedia\\Helper\\": "tests/SprykerEcoTest/Client/Coremedia/_support/Helper/",
"SprykerEcoTest\\Yves\\Coremedia\\Helper\\": "tests/SprykerEcoTest/Yves/Coremedia/_support/Helper/"
}
},
"autoload-dev": {
Expand All @@ -34,15 +39,15 @@
},
"minimum-stability": "dev",
"prefer-stable": true,
"scripts": {
"cs-check": "phpcs -p -s --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml src/ tests/",
"cs-fix": "phpcbf -p --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml src/ tests/"
},
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"scripts": {
"cs-check": "phpcs --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml -p src/ tests/",
"cs-fix": "phpcbf --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml -p src/ tests/"
},
"config": {
"sort-packages": true
}
Expand Down
10 changes: 10 additions & 0 deletions src/SprykerEco/Client/Coremedia/CoremediaConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ class CoremediaConfig extends AbstractBundleConfig
protected const FRAGMENT_BASE_PATH = '/blueprint/servlet/service/fragment/';

/**
* @api
*
* @return string
*/
public function getCoremediaHost(): string
Expand All @@ -26,6 +28,8 @@ public function getCoremediaHost(): string
}

/**
* @api
*
* @return bool
*/
public function isDebugModeEnabled(): bool
Expand All @@ -34,6 +38,8 @@ public function isDebugModeEnabled(): bool
}

/**
* @api
*
* @return string
*/
public function getFragmentBasePath(): string
Expand All @@ -47,6 +53,8 @@ public function getFragmentBasePath(): string
* ...
* ]
*
* @api
*
* @return string[]
*/
public function getApplicationStoreMapping(): array
Expand All @@ -60,6 +68,8 @@ public function getApplicationStoreMapping(): array
* ...
* ]
*
* @api
*
* @return string[][]
*/
public function getApplicationStoreLocaleMapping(): array
Expand Down
2 changes: 2 additions & 0 deletions src/SprykerEco/Shared/Coremedia/CoremediaConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ class CoremediaConfig extends AbstractBundleConfig
public const PREG_MATCH_PLACEHOLDER_KEY = 'placeholder';

/**
* @api
*
* @return bool
*/
public function isDebugModeEnabled(): bool
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

use Generated\Shared\Transfer\CoremediaPlaceholderTransfer;
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToCategoryStorageClientInterface;
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToStoreClientInterface;

class CategoryUrlPlaceholderReplacementRenderer implements PlaceholderReplacementRendererInterface
{
Expand All @@ -20,12 +21,21 @@ class CategoryUrlPlaceholderReplacementRenderer implements PlaceholderReplacemen
*/
protected $categoryStorageClient;

/**
* @var \SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToStoreClientInterface
*/
protected $storeClient;

/**
* @param \SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToCategoryStorageClientInterface $categoryStorageClient
* @param \SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToStoreClientInterface $storeClient
*/
public function __construct(CoremediaToCategoryStorageClientInterface $categoryStorageClient)
{
public function __construct(
CoremediaToCategoryStorageClientInterface $categoryStorageClient,
CoremediaToStoreClientInterface $storeClient
) {
$this->categoryStorageClient = $categoryStorageClient;
$this->storeClient = $storeClient;
}

/**
Expand Down Expand Up @@ -55,7 +65,8 @@ public function getPlaceholderReplacement(

$categoryNodeStorageTransfer = $this->categoryStorageClient->getCategoryNodeById(
(int)$coreMediaPlaceholderTransfer->getCategoryId(),
$locale
$locale,
$this->storeClient->getCurrentStore()->getName()
);

return $categoryNodeStorageTransfer->getUrl();
Expand Down
6 changes: 6 additions & 0 deletions src/SprykerEco/Yves/Coremedia/CoremediaConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
class CoremediaConfig extends AbstractBundleConfig
{
/**
* @api
*
* @return bool
*/
public function isDebugModeEnabled(): bool
Expand All @@ -24,6 +26,8 @@ public function isDebugModeEnabled(): bool
}

/**
* @api
*
* @return string
*/
public function getPlaceholderPattern(): string
Expand All @@ -32,6 +36,8 @@ public function getPlaceholderPattern(): string
}

/**
* @api
*
* @return string
*/
public function getMetaTagFormat(): string
Expand Down
19 changes: 19 additions & 0 deletions src/SprykerEco/Yves/Coremedia/CoremediaDependencyProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToPriceProductClientBridge;
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToPriceProductStorageClientBridge;
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToProductStorageClientBridge;
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToStoreClientBridge;
use SprykerEco\Yves\Coremedia\Dependency\Service\CoremediaToUtilEncodingServiceBridge;

class CoremediaDependencyProvider extends AbstractBundleDependencyProvider
Expand All @@ -24,6 +25,7 @@ class CoremediaDependencyProvider extends AbstractBundleDependencyProvider
public const CLIENT_PRICE_PRODUCT_STORAGE = 'CLIENT_PRICE_PRODUCT_STORAGE';
public const CLIENT_PRICE_PRODUCT = 'CLIENT_PRICE_PRODUCT';
public const CLIENT_MONEY = 'CLIENT_MONEY';
public const CLIENT_STORE = 'CLIENT_STORE';
public const SERVICE_UTIL_ENCODING = 'SERVICE_UTIL_ENCODING';
public const URL_GENERATOR = 'URL_GENERATOR';

Expand All @@ -42,6 +44,7 @@ public function provideDependencies(Container $container): Container
$container = $this->addPriceProductStorageClient($container);
$container = $this->addPriceProductClient($container);
$container = $this->addMoneyClient($container);
$container = $this->addStoreClient($container);
$container = $this->addUrlGenerator($container);

return $container;
Expand Down Expand Up @@ -143,6 +146,22 @@ protected function addMoneyClient(Container $container): Container
return $container;
}

/**
* @param \Spryker\Yves\Kernel\Container $container
*
* @return \Spryker\Yves\Kernel\Container
*/
protected function addStoreClient(Container $container): Container
{
$container->set(static::CLIENT_STORE, function (Container $container) {
return new CoremediaToStoreClientBridge(
$container->getLocator()->store()->client()
);
});

return $container;
}

/**
* @param \Spryker\Yves\Kernel\Container $container
*
Expand Down
12 changes: 11 additions & 1 deletion src/SprykerEco/Yves/Coremedia/CoremediaFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToPriceProductClientInterface;
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToPriceProductStorageClientInterface;
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToProductStorageClientInterface;
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToStoreClientInterface;
use SprykerEco\Yves\Coremedia\Dependency\Service\CoremediaToUtilEncodingServiceInterface;
use SprykerEco\Yves\Coremedia\Formatter\ProductPriceFormatter;
use SprykerEco\Yves\Coremedia\Formatter\ProductPriceFormatterInterface;
Expand Down Expand Up @@ -149,7 +150,8 @@ public function createProductUrlPlaceholderReplacementRenderer(): PlaceholderRep
public function createCategoryUrlPlaceholderReplacementRenderer(): PlaceholderReplacementRendererInterface
{
return new CategoryUrlPlaceholderReplacementRenderer(
$this->getCategoryStorageClient()
$this->getCategoryStorageClient(),
$this->getStoreClient()
);
}

Expand Down Expand Up @@ -311,6 +313,14 @@ public function getMoneyClient(): CoremediaToMoneyClientInterface
return $this->getProvidedDependency(CoremediaDependencyProvider::CLIENT_MONEY);
}

/**
* @return \SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToStoreClientInterface
*/
public function getStoreClient(): CoremediaToStoreClientInterface
{
return $this->getProvidedDependency(CoremediaDependencyProvider::CLIENT_STORE);
}

/**
* @return \Symfony\Component\Routing\Generator\UrlGeneratorInterface
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,25 @@ class CoremediaToCategoryStorageClientBridge implements CoremediaToCategoryStora
/**
* @var \Spryker\Client\CategoryStorage\CategoryStorageClientInterface
*/
protected $categoryClient;
protected $categoryStorageClient;

/**
* @param \Spryker\Client\CategoryStorage\CategoryStorageClientInterface $categoryClient
* @param \Spryker\Client\CategoryStorage\CategoryStorageClientInterface $categoryStorageClient
*/
public function __construct($categoryClient)
public function __construct($categoryStorageClient)
{
$this->categoryClient = $categoryClient;
$this->categoryStorageClient = $categoryStorageClient;
}

/**
* @param int $idCategoryNode
* @param string $localeName
* @param string|null $storeName
*
* @return \Generated\Shared\Transfer\CategoryNodeStorageTransfer
*/
public function getCategoryNodeById($idCategoryNode, $localeName)
public function getCategoryNodeById($idCategoryNode, $localeName, ?string $storeName = null)
{
return $this->categoryClient->getCategoryNodeById($idCategoryNode, $localeName);
return $this->categoryStorageClient->getCategoryNodeById($idCategoryNode, $localeName, $storeName);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ interface CoremediaToCategoryStorageClientInterface
/**
* @param int $idCategoryNode
* @param string $localeName
* @param string|null $storeName
*
* @return \Generated\Shared\Transfer\CategoryNodeStorageTransfer
*/
public function getCategoryNodeById($idCategoryNode, $localeName);
public function getCategoryNodeById($idCategoryNode, $localeName, ?string $storeName = null);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

/**
* Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
* Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
*/

namespace SprykerEco\Yves\Coremedia\Dependency\Client;

class CoremediaToStoreClientBridge implements CoremediaToStoreClientInterface
{
/**
* @var \Spryker\Client\Store\StoreClientInterface
*/
protected $storeClient;

/**
* @param \Spryker\Client\Store\StoreClientInterface $storeClient
*/
public function __construct($storeClient)
{
$this->storeClient = $storeClient;
}

/**
* @return \Generated\Shared\Transfer\StoreTransfer
*/
public function getCurrentStore()
{
return $this->storeClient->getCurrentStore();
}
}
Loading