| Server IP : 104.26.2.156 / Your IP : 216.73.216.185 Web Server : nginx/1.27.1 System : Linux us-1 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64 User : vinodai ( 3134) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /storage/v1396/wwwindicidolscom/public_html/wp-content/plugins/give/src/Tracking/ |
Upload File : |
<?php
namespace Give\Tracking;
use Give\Tracking\Enum\EventType;
use Give\Tracking\Repositories\TelemetryAccessDetails;
use Give\Tracking\TrackingData\WebsiteInfoData;
/**
* Class AccessTokenGenerator
* @package Give\Tracking
*
* @since 2.10.0
*/
class AccessToken
{
/**
* @var TrackClient
*/
private $trackClient;
/**
* @var TelemetryAccessDetails
*/
private $telemetryAccessDetails;
/**
* AccessToken constructor.
*
* @param TrackClient $trackClient
* @param TelemetryAccessDetails $telemetryAccessDetails
*/
public function __construct(TrackClient $trackClient, TelemetryAccessDetails $telemetryAccessDetails)
{
$this->trackClient = $trackClient;
$this->telemetryAccessDetails = $telemetryAccessDetails;
}
/**
* Store access token
*
* @since 2.10.0
*/
public function store()
{
/* @var WebsiteInfoData $dataClass */
$dataClass = give(WebsiteInfoData::class);
$response = $this->trackClient->post(new EventType(EventType::CREATE_TOKEN), $dataClass, ['blocking' => true]);
if (is_wp_error($response)) {
return false;
}
$response = json_decode(wp_remote_retrieve_body($response), true);
if (empty($response['success'])) {
return false;
}
$token = $response['data']['access_token'];
$this->telemetryAccessDetails->saveAccessTokenOptionValue($token);
return true;
}
}