PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.22.0
GiveWP – Donation Plugin and Fundraising Platform v2.22.0
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Donors / Endpoints / ListDonors.php
give / src / Donors / Endpoints Last commit date
DeleteDonor.php 4 years ago Endpoint.php 4 years ago ListDonors.php 4 years ago SwitchDonorView.php 4 years ago
ListDonors.php
100 lines
1 <?php
2
3 namespace Give\Donors\Endpoints;
4
5 use Give\Donors\Controllers\DonorsRequestController;
6 use Give\Donors\DataTransferObjects\DonorResponseData;
7 use WP_REST_Request;
8 use WP_REST_Response;
9
10 class ListDonors extends Endpoint
11 {
12 /**
13 * @var string
14 */
15 protected $endpoint = 'admin/donors';
16
17 /**
18 * @inheritDoc
19 */
20 public function registerRoute()
21 {
22 register_rest_route(
23 'give-api/v2',
24 $this->endpoint,
25 [
26 [
27 'methods' => 'GET',
28 'callback' => [$this, 'handleRequest'],
29 'permission_callback' => [$this, 'permissionsCheck'],
30 ],
31 'args' => [
32 'page' => [
33 'type' => 'integer',
34 'required' => false,
35 'default' => 1,
36 'minimum' => 1
37 ],
38 'perPage' => [
39 'type' => 'integer',
40 'required' => false,
41 'default' => 30,
42 'minimum' => 1
43 ],
44 'donations' => [
45 'type' => 'integer',
46 'required' => false,
47 'default' => 0
48 ],
49 'search' => [
50 'type' => 'string',
51 'required' => false
52 ],
53 'start' => [
54 'type' => 'string',
55 'required' => false,
56 'validate_callback' => [$this, 'validateDate']
57 ],
58 'form' => [
59 'type' => 'integer',
60 'required' => false,
61 'default' => 0
62 ],
63 'end' => [
64 'type' => 'string',
65 'required' => false,
66 'validate_callback' => [$this, 'validateDate']
67 ],
68 ],
69 ]
70 );
71 }
72
73 /**
74 * @param WP_REST_Request $request
75 * @since 2.20.0
76 *
77 * @return WP_REST_Response
78 */
79 public function handleRequest(WP_REST_Request $request): WP_REST_Response
80 {
81 $data = [];
82 $controller = new DonorsRequestController($request);
83 $donors = $controller->getDonors();
84 $donorsCount = $controller->getTotalDonorsCount();
85 $pageCount = (int)ceil($donorsCount / $request->get_param('perPage'));
86
87 foreach ($donors as $donor) {
88 $data[] = DonorResponseData::fromObject($donor)->toArray();
89 }
90
91 return new WP_REST_Response(
92 [
93 'items' => $data,
94 'totalItems' => $donorsCount,
95 'totalPages' => $pageCount
96 ]
97 );
98 }
99 }
100