File "Service_Provider.php"
Full Path: /home/romayxjt/public_html/wp-content/plugins/the-events-calendar/src/Tribe/Aggregator/REST/V1/Service_Provider.php
File size: 1.99 KB
MIME-type: text/x-php
Charset: utf-8
<?php
use TEC\Common\Contracts\Service_Provider;
/**
* Class Tribe__Events__Aggregator__REST__V1__Service_Provider
*
* Provides the Event Aggregator batch process support functionality.
*
* @since 4.6.15
*/
class Tribe__Events__Aggregator__REST__V1__Service_Provider extends Service_Provider {
/**
* Binds and sets up implementations.
*/
public $namespace;
/**
* Registers the classes and functionality needed to support batch imports.
*
* @since 4.6.15
*/
public function register() {
tribe_singleton( 'events-aggregator.rest-api.v1.endpoints.batch', 'Tribe__Events__Aggregator__REST__V1__Endpoints__Batch' );
tribe_singleton( 'events-aggregator.rest-api.v1.endpoints.state', 'Tribe__Events__Aggregator__REST__V1__Endpoints__State' );
add_action( 'rest_api_init', [ $this, 'register_endpoints' ] );
}
/**
* Registers the REST API endpoints needed to support batch imports.
*
* @since 4.6.15
*/
public function register_endpoints() {
/** @var Tribe__REST__Endpoints__CREATE_Endpoint_Interface $batch_endpoint */
$batch_endpoint = tribe( 'events-aggregator.rest-api.v1.endpoints.batch' );
/** @var Tribe__REST__Endpoints__CREATE_Endpoint_Interface $batch_endpoint */
$state_endpoint = tribe( 'events-aggregator.rest-api.v1.endpoints.state' );
$this->namespace = 'tribe/event-aggregator/v1';
register_rest_route(
$this->namespace,
'/import/(?P<import_id>\w+)/batch',
[
'methods' => WP_REST_Server::CREATABLE,
'args' => $batch_endpoint->CREATE_args(),
'permission_callback' => [ $batch_endpoint, 'can_create' ],
'callback' => [ $batch_endpoint, 'create' ],
]
);
register_rest_route(
$this->namespace,
'/import/(?P<import_id>\w+)/state',
[
'methods' => WP_REST_Server::CREATABLE,
'args' => $state_endpoint->CREATE_args(),
'permission_callback' => [ $state_endpoint, 'can_create' ],
'callback' => [ $state_endpoint, 'create' ],
]
);
}
}