Skip to content

Commit

Permalink
Merge pull request #10 from spryker-eco/feature/cc-11958/dev-categori…
Browse files Browse the repository at this point in the history
…es-per-store-fc

CC-11958 Categories per store: Forward compatibility
  • Loading branch information
Spryker Release Bot authored Feb 11, 2021
2 parents 44acd5e + bad4bc3 commit f43937e
Show file tree
Hide file tree
Showing 12 changed files with 141 additions and 27 deletions.
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
23 changes: 14 additions & 9 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/price-product-storage": "^2.3.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

0 comments on commit f43937e

Please sign in to comment.