From 6c4819aa720974e4f57c188ce48739c1d3de35a1 Mon Sep 17 00:00:00 2001 From: "nikoloz.gabisonia" Date: Mon, 20 Jun 2022 12:54:13 +0400 Subject: [PATCH 1/4] Filter stores to only show from the current website --- src/Model/Resolver/StoreListResolver.php | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/Model/Resolver/StoreListResolver.php b/src/Model/Resolver/StoreListResolver.php index f2940de..94608d7 100644 --- a/src/Model/Resolver/StoreListResolver.php +++ b/src/Model/Resolver/StoreListResolver.php @@ -50,20 +50,26 @@ public function __construct( * @inheritdoc */ public function resolve( - Field $field, - $context, + Field $field, + $context, ResolveInfo $info, - array $value = null, - array $args = null - ) { + array $value = null, + array $args = null + ) + { $stores = $this->storeManager->getStores(); + $storeCode = $this->storeManager->getStore()->getCode(); - return array_map(function ($store) { + $mappedStores = array_map(function ($store) { /** @var $store StoreInterface */ return array_merge( $this->storeConfigDataProvider->getStoreConfigData($store), - ['name' => $store->getName(), 'is_active' => $store->getIsActive()] + ['name' => $store->getName(), 'is_active' => $store->getIsActive(), 'code' => $store->getCode()] ); }, $stores); + + return array_filter($mappedStores, function ($store) use ($storeCode) { + return $store["code"] == $storeCode; + }); } } From 3e8c58ede61630769c6b8f2494b4ea6e6d5fe455 Mon Sep 17 00:00:00 2001 From: "nikoloz.gabisonia" Date: Mon, 20 Jun 2022 16:31:21 +0400 Subject: [PATCH 2/4] Filter stores by current website --- src/Model/Resolver/StoreListResolver.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Model/Resolver/StoreListResolver.php b/src/Model/Resolver/StoreListResolver.php index 94608d7..b9ed752 100644 --- a/src/Model/Resolver/StoreListResolver.php +++ b/src/Model/Resolver/StoreListResolver.php @@ -58,18 +58,20 @@ public function resolve( ) { $stores = $this->storeManager->getStores(); - $storeCode = $this->storeManager->getStore()->getCode(); + $website_id = $this->storeManager->getWebsite()->getId(); $mappedStores = array_map(function ($store) { /** @var $store StoreInterface */ return array_merge( $this->storeConfigDataProvider->getStoreConfigData($store), - ['name' => $store->getName(), 'is_active' => $store->getIsActive(), 'code' => $store->getCode()] + ['name' => $store->getName(), 'is_active' => $store->getIsActive(), 'website_id' => $store->getWebsiteId()] ); }, $stores); - return array_filter($mappedStores, function ($store) use ($storeCode) { - return $store["code"] == $storeCode; + $filtered = array_filter($mappedStores, function ($store) use ($website_id) { + return $store["website_id"] == $website_id; }); + + return $filtered; } } From 674cf792ca0b247f38c163ef39fee371549d53e3 Mon Sep 17 00:00:00 2001 From: "nikoloz.gabisonia" Date: Mon, 20 Jun 2022 16:43:59 +0400 Subject: [PATCH 3/4] Filter stores by current website --- src/Model/Resolver/StoreListResolver.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Model/Resolver/StoreListResolver.php b/src/Model/Resolver/StoreListResolver.php index b9ed752..ca65703 100644 --- a/src/Model/Resolver/StoreListResolver.php +++ b/src/Model/Resolver/StoreListResolver.php @@ -50,11 +50,11 @@ public function __construct( * @inheritdoc */ public function resolve( - Field $field, - $context, + Field $field, + $context, ResolveInfo $info, - array $value = null, - array $args = null + array $value = null, + array $args = null ) { $stores = $this->storeManager->getStores(); From c1f45f617b3f8d9c4465e3794a140b6ae542965a Mon Sep 17 00:00:00 2001 From: "nikoloz.gabisonia" Date: Mon, 20 Jun 2022 17:27:09 +0400 Subject: [PATCH 4/4] Filter stores by current website -- fixed formatting --- src/Model/Resolver/StoreListResolver.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Model/Resolver/StoreListResolver.php b/src/Model/Resolver/StoreListResolver.php index ca65703..ca97ef9 100644 --- a/src/Model/Resolver/StoreListResolver.php +++ b/src/Model/Resolver/StoreListResolver.php @@ -64,12 +64,16 @@ public function resolve( /** @var $store StoreInterface */ return array_merge( $this->storeConfigDataProvider->getStoreConfigData($store), - ['name' => $store->getName(), 'is_active' => $store->getIsActive(), 'website_id' => $store->getWebsiteId()] + [ + 'name' => $store->getName(), + 'is_active' => $store->getIsActive(), + 'website_id' => $store->getWebsiteId() + ] ); }, $stores); $filtered = array_filter($mappedStores, function ($store) use ($website_id) { - return $store["website_id"] == $website_id; + return $store["website_id"] === $website_id; }); return $filtered;