Server IP : 104.21.14.48 / Your IP : 3.133.136.137 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/plugins/wp-all-export/src/Scheduling/ |
Upload File : |
<?php namespace Wpae\Scheduling; use Wpae\Scheduling\Exception\SchedulingHttpException; class SchedulingApi { private $apiUrl; public function __construct($apiUrl) { $this->apiUrl = $apiUrl; } public function checkConnection() { if (is_multisite()) { $siteUrl = get_site_url(get_current_blog_id()); } else { $siteUrl = get_site_url(); } $pingBackUrl = $this->getApiUrl('connection') . '?url=' . urlencode($siteUrl); $response = wp_remote_request( $pingBackUrl, array( 'method' => 'GET' ) ); if ($response instanceof \WP_Error) { return false; } if ($response['response']['code'] == 200) { return true; } else { return false; } } public function getSchedules($elementId, $elementType) { $response = wp_remote_request( $this->getApiUrl('schedules?forElement=' . $elementId . '&type=' . $elementType . '&endpoint=' . urlencode(get_site_url())), array( 'method' => 'GET', 'headers' => $this->getHeaders() ) ); if ($response instanceof \WP_Error) { return false; } return json_decode($response['body']); } public function getSchedule($scheduleId) { wp_remote_request( $this->getApiUrl('schedules/' . $scheduleId), array( 'method' => 'GET', 'headers' => $this->getHeaders() ) ); } public function createSchedule($scheduleData) { $response = wp_remote_request( $this->getApiUrl('schedules'), array( 'method' => 'PUT', 'headers' => $this->getHeaders(), 'body' => json_encode($scheduleData) ) ); if ($response instanceof \WP_Error) { throw new SchedulingHttpException('There was a problem saving the schedule'); } return $response; } public function deleteSchedule($remoteScheduleId) { wp_remote_request( $this->getApiUrl('schedules/' . $remoteScheduleId), array( 'method' => 'DELETE', 'headers' => $this->getHeaders() ) ); } public function disableSchedule($remoteScheduleId) { wp_remote_request( $this->getApiUrl('schedules/' . $remoteScheduleId . '/disable'), array( 'method' => 'DELETE', 'headers' => $this->getHeaders() ) ); } public function enableSchedule($scheduleId) { wp_remote_request( $this->getApiUrl('schedules/' . $scheduleId . '/enable'), array( 'method' => 'POST', 'headers' => $this->getHeaders() ) ); } public function updateSchedule($scheduleId, $scheduleTime) { $response = wp_remote_request( $this->getApiUrl('schedules/' . $scheduleId), array( 'method' => 'POST', 'headers' => $this->getHeaders(), 'body' => json_encode($scheduleTime) )); if ($response instanceof \WP_Error) { throw new SchedulingHttpException('There was a problem saving the schedule'); } return $response; } public function updateScheduleKey($remoteScheduleId, $newKey) { wp_remote_request( $this->getApiUrl('schedules/' . $remoteScheduleId . '/key'), array( 'method' => 'POST', 'headers' => $this->getHeaders(), 'body' => json_encode(['key' => $newKey]) ) ); } private function getHeaders() { $options = \PMXE_Plugin::getInstance()->getOption(); if (!empty($options['scheduling_license'])) { return array( 'Authorization' => 'License ' . \PMXE_Plugin::decode($options['scheduling_license']) ); } else { //TODO: Throw custom exception throw new \Exception('No license present'); } } /** * @return string */ private function getApiUrl($resource) { return $this->apiUrl . '/' . $resource; } }