PluginProbe
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management / trunk
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management vtrunk
1.5.1 1.5.0 1.4.0 1.3.0 trunk 0.0.1 1.0.0 1.1.0 1.1.1 1.1.2 1.2.0
suredonation / inc / rest-api.php

rest-api.php in SureDonation – Donation Forms, Fundraising Campaigns & Donor Management trunk, at inc/rest-api.php

134 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * REST API Endpoints
4 *
5 * @package SureDonation
6 */
7
8 namespace SureDonation\Inc;
9
10 use SureDonation\Inc\API\Campaigns_API;
11 use SureDonation\Inc\API\Dashboard_API;
12 use SureDonation\Inc\API\Donations_API;
13 use SureDonation\Inc\API\Donors_API;
14 use SureDonation\Inc\API\Forms_API;
15 use SureDonation\Inc\API\Import_Charitable_API;
16 use SureDonation\Inc\API\Import_Export_API;
17 use SureDonation\Inc\API\Import_Givewp_API;
18 use SureDonation\Inc\API\Onboarding_API;
19 use SureDonation\Inc\API\Settings_API;
20 use SureDonation\Inc\Traits\Get_Instance;
21
22 // Exit if accessed directly.
23 if ( ! defined( 'ABSPATH' ) ) {
24 exit;
25 }
26
27 /**
28 * Rest_Api class.
29 *
30 * @since 0.0.1
31 */
32 class Rest_Api {
33 use Get_Instance;
34
35 /**
36 * REST API namespace.
37 *
38 * @var string
39 * @since 0.0.1
40 */
41 private $namespace = 'suredonation';
42
43 /**
44 * REST API version.
45 *
46 * @var string
47 * @since 0.0.1
48 */
49 private $version = 'v1';
50
51 /**
52 * Constructor.
53 *
54 * @since 0.0.1
55 */
56 public function __construct() {
57 add_action( 'rest_api_init', [ $this, 'register_routes' ] );
58 }
59
60 /**
61 * Get REST API namespace with version.
62 *
63 * @return string
64 * @since 0.0.1
65 */
66 public function get_namespace() {
67 return $this->namespace . '/' . $this->version;
68 }
69
70 /**
71 * Register REST API routes.
72 *
73 * @return void
74 * @since 0.0.1
75 */
76 public function register_routes() {
77 $endpoints = $this->get_endpoints();
78
79 foreach ( $endpoints as $endpoint => $args ) {
80 if ( ! is_array( $args ) ) {
81 continue;
82 }
83 register_rest_route(
84 $this->get_namespace(),
85 $endpoint,
86 $args
87 );
88 }
89 }
90
91 /**
92 * Get REST API endpoints.
93 *
94 * @return array<string, mixed>
95 * @since 0.0.1
96 */
97 private function get_endpoints() {
98 $campaigns_api = new Campaigns_API();
99 $donations_api = new Donations_API();
100 $donors_api = new Donors_API();
101 $dashboard_api = new Dashboard_API();
102 $forms_api = new Forms_API();
103 $settings_api = new Settings_API();
104 $import_givewp_api = Import_Givewp_API::get_instance();
105 $import_charitable_api = Import_Charitable_API::get_instance();
106 $import_export_api = new Import_Export_API();
107 $onboarding_api = new Onboarding_API();
108
109 // Merge endpoints from all APIs.
110 $endpoints = array_merge(
111 $campaigns_api->get_endpoints(),
112 $donations_api->get_endpoints(),
113 $donors_api->get_endpoints(),
114 $dashboard_api->get_endpoints(),
115 $forms_api->get_endpoints(),
116 $settings_api->get_endpoints(),
117 $import_givewp_api->get_endpoints(),
118 $import_charitable_api->get_endpoints(),
119 $import_export_api->get_endpoints(),
120 $onboarding_api->get_endpoints()
121 );
122
123 /**
124 * Filter REST API endpoints.
125 *
126 * @param array $endpoints Array of REST API endpoints.
127 */
128 return apply_filters(
129 'suredonation_rest_api_endpoints',
130 $endpoints
131 );
132 }
133 }
134