Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
20 / 20
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
RestApi
100.00% covered (success)
100.00%
20 / 20
100.00% covered (success)
100.00%
2 / 2
2
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 register_routes
100.00% covered (success)
100.00%
19 / 19
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace NewfoldLabs\WP\Module\Patterns\Api;
4
5use NewfoldLabs\WP\Module\Patterns\Api\Controllers\RestApiController;
6use NewfoldLabs\WP\Module\Patterns\Api\Controllers\PatternsController;
7use NewfoldLabs\WP\Module\Patterns\Api\Controllers\PatternCategoriesController;
8use NewfoldLabs\WP\Module\Patterns\Api\Controllers\TemplatesController;
9use NewfoldLabs\WP\Module\Patterns\Api\Controllers\TemplateCategoriesController;
10use NewfoldLabs\WP\Module\Patterns\Api\Controllers\FavoritesController;
11use NewfoldLabs\WP\Module\Patterns\Api\Controllers\EventsController;
12use NewfoldLabs\WP\Module\Patterns\Api\Controllers\CacheController;
13use NewfoldLabs\WP\Module\Patterns\Api\Controllers\PatternUsageTagsController;
14use NewfoldLabs\WP\Module\Patterns\Api\Controllers\PluginsController;
15use NewfoldLabs\WP\Module\Patterns\Api\Controllers\PatternIndexController;
16
17/**
18 * Instantiate controllers and register routes.
19 */
20final class RestApi {
21
22    /**
23     * Constructor.
24     */
25    public function __construct() {
26        \add_action( 'rest_api_init', array( $this, 'register_routes' ) );
27    }
28
29    /**
30     * Register routes.
31     */
32    public function register_routes() {
33        RestApiController::get( '/patterns', array( PatternsController::class, 'index' ) );
34        RestApiController::get( '/categories', array( PatternCategoriesController::class, 'index' ) );
35        RestApiController::get( '/usage_tags', array( PatternUsageTagsController::class, 'index' ) );
36
37        RestApiController::get( '/templates', array( TemplatesController::class, 'index' ) );
38        RestApiController::get( '/templateCategories', array( TemplateCategoriesController::class, 'index' ) );
39
40        RestApiController::get( '/favorites', array( FavoritesController::class, 'index' ) );
41        RestApiController::post( '/favorites', array( FavoritesController::class, 'add' ) );
42        RestApiController::delete( '/favorites', array( FavoritesController::class, 'delete' ) );
43
44        RestApiController::post( '/events', array( EventsController::class, 'send' ), EventsController::get_send_event_args() );
45        RestApiController::post( '/events/batch', array( EventsController::class, 'send_batch' ) );
46
47        RestApiController::post( '/clear-cache', array( CacheController::class, 'clear_cache' ) );
48
49        RestApiController::post( '/plugins/activate', array( PluginsController::class, 'activate' ) );
50        RestApiController::post( '/plugin/status', array( PluginsController::class, 'check_plugin_status' ) );
51        RestApiController::post( '/plugin/install', array( PluginsController::class, 'install_plugin' ) );
52        RestApiController::post( '/plugin/activate', array( PluginsController::class, 'activate_plugin' ) );
53        RestApiController::post( '/plugin/setup', array( PluginsController::class, 'setup_plugin' ) );
54        RestApiController::post( '/plugin/process', array( PluginsController::class, 'process_plugin' ) );
55
56        RestApiController::get( '/pattern-index', array( PatternIndexController::class, 'index' ) );
57        RestApiController::get( '/pattern-by-slug', array( PatternIndexController::class, 'getBySlug' ) );
58    }
59}