72 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * WPSEO plugin file.
 | |
|  *
 | |
|  * @package WPSEO\Admin\Statistics
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * Represents an implementation of the WPSEO_Endpoint interface to register one or multiple endpoints.
 | |
|  */
 | |
| class WPSEO_Endpoint_Statistics implements WPSEO_Endpoint {
 | |
| 
 | |
| 	/**
 | |
| 	 * The namespace of the REST route.
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	const REST_NAMESPACE = 'yoast/v1';
 | |
| 
 | |
| 	/**
 | |
| 	 * The route of the statistics endpoint.
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	const ENDPOINT_RETRIEVE = 'statistics';
 | |
| 
 | |
| 	/**
 | |
| 	 * The name of the capability needed to retrieve data using the endpoints.
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	const CAPABILITY_RETRIEVE = 'read';
 | |
| 
 | |
| 	/**
 | |
| 	 * Service to use.
 | |
| 	 *
 | |
| 	 * @var WPSEO_Statistics_Service
 | |
| 	 */
 | |
| 	protected $service;
 | |
| 
 | |
| 	/**
 | |
| 	 * Constructs the WPSEO_Endpoint_Statistics class and sets the service to use.
 | |
| 	 *
 | |
| 	 * @param WPSEO_Statistics_Service $service Service to use.
 | |
| 	 */
 | |
| 	public function __construct( WPSEO_Statistics_Service $service ) {
 | |
| 		$this->service = $service;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Registers the REST routes that are available on the endpoint.
 | |
| 	 */
 | |
| 	public function register() {
 | |
| 		// Register fetch config.
 | |
| 		$route_args = [
 | |
| 			'methods'             => 'GET',
 | |
| 			'callback'            => [ $this->service, 'get_statistics' ],
 | |
| 			'permission_callback' => [ $this, 'can_retrieve_data' ],
 | |
| 		];
 | |
| 		register_rest_route( self::REST_NAMESPACE, self::ENDPOINT_RETRIEVE, $route_args );
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Determines whether or not data can be retrieved for the registered endpoints.
 | |
| 	 *
 | |
| 	 * @return bool Whether or not data can be retrieved.
 | |
| 	 */
 | |
| 	public function can_retrieve_data() {
 | |
| 		return current_user_can( self::CAPABILITY_RETRIEVE );
 | |
| 	}
 | |
| }
 |