<?php /** * Provides data stats about videos inside VideoPress * * @package automattic/jetpack-videopress */ namespace Automattic\Jetpack\VideoPress; use Automattic\Jetpack\Connection\Client; use WP_Error; /** * Provides data stats about videos inside VideoPress */ class Stats { /** * Returns the counter of today's plays for all videos. * * @return int|WP_Error the total of plays for today, or WP_Error on failure. */ public static function get_today_plays() { $error = new WP_Error( 'videopress_stats_error', __( "Could not fetch today's stats from the service", 'jetpack-videopress-pkg' ) ); $blog_id = VideoPressToken::blog_id(); $path = sprintf( 'sites/%d/stats/video-plays', $blog_id ); $response = Client::wpcom_json_api_request_as_blog( $path, '1.1', array(), null, 'rest' ); if ( is_wp_error( $response ) ) { return $error; } $response_code = wp_remote_retrieve_response_code( $response ); if ( 200 !== $response_code ) { return $error; } $body = wp_remote_retrieve_body( $response ); $data = json_decode( $body, true ); if ( ! $data || ! isset( $data['days'] ) || count( $data['days'] ) === 0 ) { return $error; } /* * The only result here is today's stats */ $today_stats = array_pop( $data['days'] ); return $today_stats['total_plays']; } }