File "top-page-repository.php"
Full Path: /home/amervokv/ecomlive.net/wp-content/plugins/wordpress-seo/src/dashboard/application/search-rankings/top-page-repository.php
File size: 2.02 KB
MIME-type: text/x-php
Charset: utf-8
<?php
// phpcs:disable Yoast.NamingConventions.NamespaceName.TooLong -- Needed in the folder structure.
namespace Yoast\WP\SEO\Dashboard\Application\Search_Rankings;
use Yoast\WP\SEO\Dashboard\Domain\Data_Provider\Dashboard_Repository_Interface;
use Yoast\WP\SEO\Dashboard\Domain\Data_Provider\Data_Container;
use Yoast\WP\SEO\Dashboard\Domain\Data_Provider\Parameters;
use Yoast\WP\SEO\Dashboard\Infrastructure\Indexables\Top_Page_Indexable_Collector;
use Yoast\WP\SEO\Dashboard\Infrastructure\Search_Console\Site_Kit_Search_Console_Adapter;
/**
* The data provider for search ranking related data.
*/
class Top_Page_Repository implements Dashboard_Repository_Interface {
/**
* The adapter.
*
* @var Site_Kit_Search_Console_Adapter $site_kit_search_console_adapter
*/
private $site_kit_search_console_adapter;
/**
* The top page indexable collector.
*
* @var Top_Page_Indexable_Collector $top_page_indexable_collector
*/
private $top_page_indexable_collector;
/**
* The constructor.
*
* @param Site_Kit_Search_Console_Adapter $site_kit_search_console_adapter The adapter.
* @param Top_Page_Indexable_Collector $top_page_indexable_collector The top page indexable collector.
*/
public function __construct(
Site_Kit_Search_Console_Adapter $site_kit_search_console_adapter,
Top_Page_Indexable_Collector $top_page_indexable_collector
) {
$this->site_kit_search_console_adapter = $site_kit_search_console_adapter;
$this->top_page_indexable_collector = $top_page_indexable_collector;
}
/**
* Gets the top pages' data.
*
* @param Parameters $parameters The parameter to use for getting the top pages.
*
* @return Data_Container
*
* @throws Exception When getting the top pages' data fails.
*/
public function get_data( Parameters $parameters ): Data_Container {
$top_pages_search_data = $this->site_kit_search_console_adapter->get_data( $parameters );
$top_pages_full_data = $this->top_page_indexable_collector->get_data( $top_pages_search_data );
return $top_pages_full_data;
}
}