Skip to content

Commit fed22e0

Browse files
committed
387-Test coverage of getting IDs of CMS page/blocks by GraphQL API
1 parent ff658b5 commit fed22e0

File tree

1 file changed

+28
-25
lines changed
  • app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider

1 file changed

+28
-25
lines changed

app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Page.php

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Magento\Cms\Api\Data\PageInterface;
1111
use Magento\Cms\Api\GetPageByIdentifierInterface;
1212
use Magento\Cms\Api\PageRepositoryInterface;
13+
use Magento\Framework\App\ObjectManager;
1314
use Magento\Framework\Exception\NoSuchEntityException;
1415
use Magento\Store\Model\StoreManagerInterface;
1516
use Magento\Widget\Model\Template\FilterEmulate;
@@ -40,21 +41,22 @@ class Page
4041
private $widgetFilter;
4142

4243
/**
43-
* @param GetPageByIdentifierInterface $getPageByIdentifier
44-
* @param FilterEmulate $widgetFilter
4544
* @param PageRepositoryInterface $pageRepository
45+
* @param FilterEmulate $widgetFilter
46+
* @param GetPageByIdentifierInterface $getPageByIdentifier
4647
* @param StoreManagerInterface $storeManager
4748
*/
4849
public function __construct(
49-
GetPageByIdentifierInterface $getPageByIdentifier,
50-
FilterEmulate $widgetFilter,
5150
PageRepositoryInterface $pageRepository,
52-
StoreManagerInterface $storeManager
51+
FilterEmulate $widgetFilter,
52+
GetPageByIdentifierInterface $getPageByIdentifier = null,
53+
StoreManagerInterface $storeManager = null
5354
) {
54-
$this->pageByIdentifier = $getPageByIdentifier;
55+
5556
$this->pageRepository = $pageRepository;
56-
$this->storeManager = $storeManager;
5757
$this->widgetFilter = $widgetFilter;
58+
$this->pageByIdentifier = $getPageByIdentifier ?: ObjectManager::getInstance()->get(GetPageByIdentifierInterface::class);
59+
$this->storeManager = $storeManager ?: ObjectManager::getInstance()->get(StoreManagerInterface::class);
5860
}
5961

6062
/**
@@ -75,23 +77,12 @@ public function getData(int $pageId): array
7577
throw new NoSuchEntityException();
7678
}
7779

78-
$renderedContent = $this->widgetFilter->filter($page->getContent());
79-
80-
$pageData = [
81-
PageInterface::PAGE_ID => $page->getId(),
82-
'url_key' => $page->getIdentifier(),
83-
PageInterface::TITLE => $page->getTitle(),
84-
PageInterface::CONTENT => $renderedContent,
85-
PageInterface::CONTENT_HEADING => $page->getContentHeading(),
86-
PageInterface::PAGE_LAYOUT => $page->getPageLayout(),
87-
PageInterface::META_TITLE => $page->getMetaTitle(),
88-
PageInterface::META_DESCRIPTION => $page->getMetaDescription(),
89-
PageInterface::META_KEYWORDS => $page->getMetaKeywords(),
90-
];
91-
return $pageData;
80+
return $this->convertPageData($page);
9281
}
9382

9483
/**
84+
* Returns page data by page_id
85+
*
9586
* @param int $pageId
9687
* @return array
9788
* @throws NoSuchEntityException
@@ -100,10 +91,12 @@ public function getDataByPageId(int $pageId): array
10091
{
10192
$page = $this->pageRepository->getById($pageId);
10293

103-
return $this->convertPageData($page);
94+
return $this->convertPageData($page, false, true);
10495
}
10596

10697
/**
98+
* Returns page data by page identifier
99+
*
107100
* @param string $pageIdentifier
108101
* @return array
109102
* @throws NoSuchEntityException
@@ -113,15 +106,17 @@ public function getDataByPageIdentifier(string $pageIdentifier): array
113106
$storeId = (int)$this->storeManager->getStore()->getId();
114107
$page = $this->pageByIdentifier->execute($pageIdentifier, $storeId);
115108

116-
return $this->convertPageData($page);
109+
return $this->convertPageData($page, false, true);
117110
}
118111

119112
/**
120113
* @param PageInterface $page
114+
* @param bool $includePageId
115+
* @param bool $includePageIdentifier
121116
* @return array
122117
* @throws NoSuchEntityException
123118
*/
124-
private function convertPageData(PageInterface $page)
119+
private function convertPageData(PageInterface $page, $includePageId = true, $includePageIdentifier = false)
125120
{
126121
if (false === $page->isActive()) {
127122
throw new NoSuchEntityException();
@@ -131,7 +126,6 @@ private function convertPageData(PageInterface $page)
131126

132127
$pageData = [
133128
'url_key' => $page->getIdentifier(),
134-
PageInterface::IDENTIFIER => $page->getIdentifier(),
135129
PageInterface::TITLE => $page->getTitle(),
136130
PageInterface::CONTENT => $renderedContent,
137131
PageInterface::CONTENT_HEADING => $page->getContentHeading(),
@@ -140,6 +134,15 @@ private function convertPageData(PageInterface $page)
140134
PageInterface::META_DESCRIPTION => $page->getMetaDescription(),
141135
PageInterface::META_KEYWORDS => $page->getMetaKeywords(),
142136
];
137+
138+
if ($includePageId) {
139+
$pageData[PageInterface::PAGE_ID] = $page->getId();
140+
}
141+
142+
if ($includePageIdentifier) {
143+
$pageData[PageInterface::IDENTIFIER] = $page->getIdentifier();
144+
}
145+
143146
return $pageData;
144147
}
145148
}

0 commit comments

Comments
 (0)