Skip to content

Commit 85db11d

Browse files
committed
#27952: missing store_name in GraphQL resolver - added store_name
1 parent b3d318d commit 85db11d

File tree

7 files changed

+69
-18
lines changed

7 files changed

+69
-18
lines changed

app/code/Magento/Store/Api/Data/StoreConfigInterface.php

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
/**
99
* StoreConfig interface
10-
*
10+
* Interface for store config
1111
* @api
1212
* @since 100.0.2
1313
*/
@@ -141,7 +141,7 @@ public function setWeightUnit($weightUnit);
141141
public function getBaseUrl();
142142

143143
/**
144-
* set base URL
144+
* Set base URL
145145
*
146146
* @param string $baseUrl
147147
* @return $this
@@ -201,7 +201,7 @@ public function setBaseMediaUrl($baseMediaUrl);
201201
public function getSecureBaseUrl();
202202

203203
/**
204-
* set secure base URL
204+
* Set secure base URL
205205
*
206206
* @param string $secureBaseUrl
207207
* @return $this
@@ -269,4 +269,19 @@ public function getExtensionAttributes();
269269
public function setExtensionAttributes(
270270
\Magento\Store\Api\Data\StoreConfigExtensionInterface $extensionAttributes
271271
);
272+
273+
/**
274+
* Get store code
275+
*
276+
* @return string
277+
*/
278+
public function getStoreName();
279+
280+
/**
281+
* Set store name
282+
*
283+
* @param string $storeName
284+
* @return $this
285+
*/
286+
public function setStoreName(string $storeName);
272287
}

app/code/Magento/Store/Model/Data/StoreConfig.php

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
/**
99
* Class StoreConfig
10-
*
10+
* Allows to get and set store config values
1111
* @codeCoverageIgnore
1212
*/
1313
class StoreConfig extends \Magento\Framework\Api\AbstractExtensibleObject implements
@@ -29,6 +29,7 @@ class StoreConfig extends \Magento\Framework\Api\AbstractExtensibleObject implem
2929
const KEY_SECURE_BASE_LINK_URL = 'secure_base_link_url';
3030
const KEY_SECURE_BASE_STATIC_URL = 'secure_base_static_url';
3131
const KEY_SECURE_BASE_MEDIA_URL = 'secure_base_media_url';
32+
const KEY_STORE_NAME = 'store_name';
3233

3334
/**
3435
* Get store id
@@ -188,7 +189,7 @@ public function getBaseUrl()
188189
}
189190

190191
/**
191-
* set base URL
192+
* Set base URL
192193
*
193194
* @param string $baseUrl
194195
* @return $this
@@ -293,7 +294,7 @@ public function getSecureBaseUrl()
293294
}
294295

295296
/**
296-
* set secure base URL
297+
* Set secure base URL
297298
*
298299
* @param string $secureBaseUrl
299300
* @return $this
@@ -367,7 +368,7 @@ public function setSecureBaseMediaUrl($secureBaseMediaUrl)
367368
}
368369

369370
/**
370-
* {@inheritdoc}
371+
* @inheritdoc
371372
*
372373
* @return \Magento\Store\Api\Data\StoreConfigExtensionInterface|null
373374
*/
@@ -377,7 +378,7 @@ public function getExtensionAttributes()
377378
}
378379

379380
/**
380-
* {@inheritdoc}
381+
* @inheritdoc
381382
*
382383
* @param \Magento\Store\Api\Data\StoreConfigExtensionInterface $extensionAttributes
383384
* @return $this
@@ -387,4 +388,25 @@ public function setExtensionAttributes(
387388
) {
388389
return $this->_setExtensionAttributes($extensionAttributes);
389390
}
391+
392+
/**
393+
* Get store code
394+
*
395+
* @return string
396+
*/
397+
public function getStoreName()
398+
{
399+
return $this->_get(self::KEY_STORE_NAME);
400+
}
401+
402+
/**
403+
* Set store name
404+
*
405+
* @param string $storeName
406+
* @return $this
407+
*/
408+
public function setStoreName(string $storeName)
409+
{
410+
return $this->setData(self::KEY_STORE_NAME, $storeName);
411+
}
390412
}

app/code/Magento/Store/Model/Service/StoreConfigManager.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
*/
66
namespace Magento\Store\Model\Service;
77

8+
/**
9+
* Class StoreConfigManager
10+
* Allows to get store config
11+
*/
812
class StoreConfigManager implements \Magento\Store\Api\StoreConfigManagerInterface
913
{
1014
/**
@@ -53,6 +57,8 @@ public function __construct(
5357
}
5458

5559
/**
60+
* Get store configs
61+
*
5662
* @param string[] $storeCodes list of stores by store codes, will return all if storeCodes is not set
5763
* @return \Magento\Store\Api\Data\StoreConfigInterface[]
5864
*/
@@ -71,6 +77,8 @@ public function getStoreConfigs(array $storeCodes = null)
7177
}
7278

7379
/**
80+
* Get store config
81+
*
7482
* @param \Magento\Store\Model\Store $store
7583
* @return \Magento\Store\Api\Data\StoreConfigInterface
7684
*/
@@ -81,7 +89,8 @@ protected function getStoreConfig($store)
8189

8290
$storeConfig->setId($store->getId())
8391
->setCode($store->getCode())
84-
->setWebsiteId($store->getWebsiteId());
92+
->setWebsiteId($store->getWebsiteId())
93+
->setStoreName($store->getName());
8594

8695
foreach ($this->configPaths as $methodName => $configPath) {
8796
$configValue = $this->scopeConfig->getValue(

app/code/Magento/Store/Test/Unit/Model/Service/StoreConfigManagerTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ protected function getStoreMock(array $storeConfig)
8787
$storeMock->expects($this->once())
8888
->method('getWebsiteId')
8989
->willReturn($storeConfig['website_id']);
90+
$storeMock->expects($this->any())
91+
->method('getName')
92+
->willReturn($storeConfig['store_name']);
9093

9194
$urlMap = [
9295
[UrlInterface::URL_TYPE_WEB, false, $storeConfig['base_url']],
@@ -145,6 +148,7 @@ public function testGetStoreConfigs()
145148
$baseCurrencyCode = 'USD';
146149
$defaultDisplayCurrencyCode = 'GBP';
147150
$weightUnit = 'lbs';
151+
$storeName = 'Default Store View';
148152

149153
$storeMocks = [];
150154
$storeConfigs = [
@@ -159,6 +163,7 @@ public function testGetStoreConfigs()
159163
'secure_base_static_url' => $secureBaseStaticUrl,
160164
'base_media_url' => $baseMediaUrl,
161165
'secure_base_media_url' => $secureBaseMediaUrl,
166+
'store_name' => $storeName,
162167
];
163168
$storeMocks[] = $this->getStoreMock($storeConfigs);
164169

@@ -205,6 +210,7 @@ public function testGetStoreConfigs()
205210
$this->assertEquals($secureBaseStaticUrl, $result[0]->getSecureBaseStaticUrl());
206211
$this->assertEquals($baseMediaUrl, $result[0]->getBaseMediaUrl());
207212
$this->assertEquals($secureBaseMediaUrl, $result[0]->getSecureBaseMediaUrl());
213+
$this->assertEquals($storeName, $result[0]->getStoreName());
208214

209215
$this->assertEquals($timeZone, $result[0]->getTimezone());
210216
$this->assertEquals($locale, $result[0]->getLocale());

app/code/Magento/StoreGraphQl/Model/Resolver/Store/StoreConfigDataProvider.php

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,10 @@ public function __construct(
5555
*/
5656
public function getStoreConfigData(StoreInterface $store): array
5757
{
58-
$storeConfigData = array_merge(
59-
$this->getBaseConfigData($store),
60-
$this->getExtendedConfigData((int)$store->getId())
58+
return array_merge(
59+
$this->getExtendedConfigData((int)$store->getId()),
60+
$this->getBaseConfigData($store)
6161
);
62-
return $storeConfigData;
6362
}
6463

6564
/**
@@ -72,7 +71,7 @@ private function getBaseConfigData(StoreInterface $store) : array
7271
{
7372
$storeConfig = current($this->storeConfigManager->getStoreConfigs([$store->getCode()]));
7473

75-
$storeConfigData = [
74+
return [
7675
'id' => $storeConfig->getId(),
7776
'code' => $storeConfig->getCode(),
7877
'website_id' => $storeConfig->getWebsiteId(),
@@ -88,9 +87,9 @@ private function getBaseConfigData(StoreInterface $store) : array
8887
'secure_base_url' => $storeConfig->getSecureBaseUrl(),
8988
'secure_base_link_url' => $storeConfig->getSecureBaseLinkUrl(),
9089
'secure_base_static_url' => $storeConfig->getSecureBaseStaticUrl(),
91-
'secure_base_media_url' => $storeConfig->getSecureBaseMediaUrl()
90+
'secure_base_media_url' => $storeConfig->getSecureBaseMediaUrl(),
91+
'store_name' => $storeConfig->getStoreName()
9292
];
93-
return $storeConfigData;
9493
}
9594

9695
/**

composer.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dev/tests/api-functional/testsuite/Magento/GraphQl/Store/StoreConfigResolverTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,6 @@ public function testGetStoreConfig()
9191
$response['storeConfig']['secure_base_static_url']
9292
);
9393
$this->assertEquals($storeConfig->getSecureBaseMediaUrl(), $response['storeConfig']['secure_base_media_url']);
94-
$this->assertEquals('Test Store', $response['storeConfig']['store_name']);
94+
$this->assertEquals($storeConfig->getStoreName(), $response['storeConfig']['store_name']);
9595
}
9696
}

0 commit comments

Comments
 (0)