PluginProbe
Metricool – Social media and site statistics / 2.1.1
Metricool – Social media and site statistics v2.1.1
2.1.1 2.1.0 2.0.2 2.0.1 2.0.0 1.27 trunk
metricool / app / Http / Metricool / Entities / RealtimeStatistics.php

RealtimeStatistics.php in Metricool – Social media and site statistics 2.1.1, at app/Http/Metricool/Entities/RealtimeStatistics.php

62 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Metricool\Http\Metricool\Entities;
6
7 use Metricool\Http\Metricool\MetricoolClient;
8 use Metricool\Http\Metricool\Traits\IsSummable;
9 use Metricool\Http\Metricool\Traits\IsCountable;
10
11 class RealtimeStatistics
12 {
13 use IsSummable;
14 use IsCountable;
15
16 protected MetricoolClient $client;
17 protected string $endpoint = 'stats/rt/';
18
19 /**
20 * The real time statistics API is compatible with these metrics.
21 *
22 * Possible values:
23 * - 'values' — ['Visitors', 'PageViews', 'SessionsCount', 'activeVisits', 'reading']
24 * - 'pvperhour' — Page views per hour for timeline usage
25 * - 'sessions' — Object containing "sessions" and "timeline".
26 * Sessions: session data for the last 24 hours.
27 * Timeline: session data for timeline usage.
28 * - 'distribution/referers' — Visitors per page for the last 24 hours.
29 * - 'distribution/countries' — Visitors per country for the last 24 hours.
30 * - 'distribution/sources' — Visitors per source for the last 24 hours.
31 * - 'distribution/currentpageviews' — Pages currently viewed with amount of visitors.
32 */
33 private array $compatibleMetrics = [
34 'values',
35 'pvperhour',
36 'sessions',
37 'distribution/referers',
38 'distribution/countries',
39 'distribution/sources',
40 'distribution/currentpageviews',
41 ];
42
43 /**
44 * Pass a compatible metric to the constructor: {@see compatibleMetrics}
45 * @throws \InvalidArgumentException
46 */
47 public function __construct(MetricoolClient $client, string $metric)
48 {
49 if (!in_array($metric, $this->compatibleMetrics)) {
50 throw new \InvalidArgumentException(esc_html("Incompatible metric given: $metric"));
51 }
52
53 $this->client = $client;
54 $this->endpoint .= $metric;
55 }
56
57 public function get(): array
58 {
59 return $this->client->get($this->endpoint);
60 }
61 }
62