PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / trunk
Yoast SEO – Advanced SEO with real-time guidance and built-in AI vtrunk
28.5 28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 All 129 releases
wordpress-seo / src / dashboard / application / traffic / organic-sessions-compare-repository.php

organic-sessions-compare-repository.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI trunk, at src/dashboard/application/traffic/organic-sessions-compare-repository.php

63 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 // phpcs:disable Yoast.NamingConventions.NamespaceName.TooLong -- Needed in the folder structure.
4 namespace Yoast\WP\SEO\Dashboard\Application\Traffic;
5
6 use Yoast\WP\SEO\Dashboard\Domain\Data_Provider\Dashboard_Repository_Interface;
7 use Yoast\WP\SEO\Dashboard\Domain\Data_Provider\Data_Container;
8 use Yoast\WP\SEO\Dashboard\Domain\Data_Provider\Parameters;
9 use Yoast\WP\SEO\Dashboard\Domain\Time_Based_Seo_Metrics\Data_Source_Not_Available_Exception;
10 use Yoast\WP\SEO\Dashboard\Infrastructure\Analytics_4\Site_Kit_Analytics_4_Adapter;
11 use Yoast\WP\SEO\Dashboard\Infrastructure\Integrations\Site_Kit;
12
13 /**
14 * The data provider for comparison organic sessions data.
15 */
16 class Organic_Sessions_Compare_Repository implements Dashboard_Repository_Interface {
17
18 /**
19 * The adapter.
20 *
21 * @var Site_Kit_Analytics_4_Adapter
22 */
23 private $site_kit_analytics_4_adapter;
24
25 /**
26 * The site kit configuration object.
27 *
28 * @var Site_Kit
29 */
30 private $site_kit_configuration;
31
32 /**
33 * The constructor.
34 *
35 * @param Site_Kit_Analytics_4_Adapter $site_kit_analytics_4_adapter The adapter.
36 * @param Site_Kit $site_kit_configuration The site kit configuration object.
37 */
38 public function __construct(
39 Site_Kit_Analytics_4_Adapter $site_kit_analytics_4_adapter,
40 Site_Kit $site_kit_configuration
41 ) {
42 $this->site_kit_analytics_4_adapter = $site_kit_analytics_4_adapter;
43 $this->site_kit_configuration = $site_kit_configuration;
44 }
45
46 /**
47 * Gets comparison organic sessions' data.
48 *
49 * @param Parameters $parameters The parameter to use for getting the comparison organic sessions' data.
50 *
51 * @return Data_Container
52 *
53 * @throws Data_Source_Not_Available_Exception When getting the comparison organic sessions' data fails.
54 */
55 public function get_data( Parameters $parameters ): Data_Container {
56 if ( ! $this->site_kit_configuration->is_onboarded() || ! $this->site_kit_configuration->is_ga_connected() ) {
57 throw new Data_Source_Not_Available_Exception( 'Comparison organic sessions repository' );
58 }
59
60 return $this->site_kit_analytics_4_adapter->get_comparison_data( $parameters );
61 }
62 }
63