PluginProbe
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management / 1.2.0
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management v1.2.0
1.6.0 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 1.2.0, at inc/rest-api.php

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