PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.3.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.3.3
4.7.2 4.7.1 4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 All 281 releases
surecart / app / src / Rest / ReturnRequestsRestServiceProvider.php
ReturnRequestsRestServiceProvider.php
169 lines 4.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SureCart\Rest;
4
5 use SureCart\Controllers\Rest\ReturnRequestsController;
6
7 /**
8 * Service provider for ReturnRequest rest requests
9 */
10 class ReturnRequestsRestServiceProvider extends RestServiceProvider implements RestServiceInterface {
11 /**
12 * Endpoint
13 *
14 * @var string
15 */
16 protected $endpoint = 'return_requests';
17
18 /**
19 * Rest Controller
20 *
21 * @var string
22 */
23 protected $controller = ReturnRequestsController::class;
24
25 /**
26 * Methods allowed for the model.
27 *
28 * @var array
29 */
30 protected $methods = [ 'index', 'find', 'create', 'edit', 'delete' ];
31
32 /**
33 * Register REST Routes
34 *
35 * @return void
36 */
37 public function registerRoutes() {
38 register_rest_route(
39 "$this->name/v$this->version",
40 $this->endpoint . '/(?P<id>\S+)/open/',
41 [
42 [
43 'methods' => \WP_REST_Server::EDITABLE,
44 'callback' => $this->callback( $this->controller, 'open' ),
45 'permission_callback' => [ $this, 'open_item_permissions_check' ],
46 ],
47 // Register our schema callback.
48 'schema' => [ $this, 'get_item_schema' ],
49 ]
50 );
51
52 register_rest_route(
53 "$this->name/v$this->version",
54 $this->endpoint . '/(?P<id>\S+)/complete/',
55 [
56 [
57 'methods' => \WP_REST_Server::EDITABLE,
58 'callback' => $this->callback( $this->controller, 'complete' ),
59 'permission_callback' => [ $this, 'complete_item_permissions_check' ],
60 ],
61 // Register our schema callback.
62 'schema' => [ $this, 'get_item_schema' ],
63 ]
64 );
65
66 }
67
68 /**
69 * Get our samples schema for a post
70 *
71 * @return array The sample schema for a post
72 */
73 public function get_item_schema() {
74 if ( $this->schema ) {
75 // Since WordPress 5.3, the schema can be cached in the $schema property.
76 return $this->schema;
77 }
78
79 $this->schema = [
80 // This tells the spec of JSON Schema we are using which is draft 4.
81 '$schema' => 'http://json-schema.org/draft-04/schema#',
82 // The title property marks the identity of the resource.
83 'title' => $this->endpoint,
84 'type' => 'object',
85 // In JSON Schema you can specify object properties in the properties attribute.
86 'properties' => [
87 'id' => [
88 'description' => esc_html__( 'Unique identifier for the object.', 'surecart' ),
89 'type' => 'string',
90 'context' => [ 'view', 'edit', 'embed' ],
91 'readonly' => true,
92 ],
93 ],
94 ];
95
96 return $this->schema;
97 }
98
99 /**
100 * Who can read return requests
101 *
102 * @param \WP_REST_Request $request Rest Request.
103 * @return true|\WP_Error True if the request has access to read return request, WP_Error object otherwise.
104 */
105 public function get_items_permissions_check( $request ) {
106 return current_user_can( 'read_sc_orders' );
107 }
108
109 /**
110 * Who can read a return request
111 *
112 * @param \WP_REST_Request $request Rest Request.
113 * @return true|\WP_Error True if the request has access to read return request, WP_Error object otherwise.
114 */
115 public function get_item_permissions_check( $request ) {
116 return current_user_can( 'read_sc_orders' );
117 }
118
119 /**
120 * Who can create a return request
121 *
122 * @param \WP_REST_Request $request Rest Request.
123 * @return true|\WP_Error True if the request has access to create return request, WP_Error object otherwise.
124 */
125 public function create_item_permissions_check( $request ) {
126 return current_user_can( 'publish_sc_orders' );
127 }
128
129 /**
130 * Who can update a return request
131 *
132 * @param \WP_REST_Request $request Rest Request.
133 * @return true|\WP_Error True if the request has access to update return request, WP_Error object otherwise.
134 */
135 public function update_item_permissions_check( $request ) {
136 return current_user_can( 'edit_sc_orders' );
137 }
138
139 /**
140 * Who can delete a return request
141 *
142 * @param \WP_REST_Request $request Rest Request.
143 * @return true|\WP_Error True if the request has access to delete return request, WP_Error object otherwise.
144 */
145 public function delete_item_permissions_check( $request ) {
146 return current_user_can( 'delete_sc_orders' );
147 }
148
149 /**
150 * Who can open a return request
151 *
152 * @param \WP_REST_Request $request Rest Request.
153 * @return true|\WP_Error True if the request has access to open return request, WP_Error object otherwise.
154 */
155 public function open_item_permissions_check( $request ) {
156 return current_user_can( 'edit_sc_orders' );
157 }
158
159 /**
160 * Who can complete a return request
161 *
162 * @param \WP_REST_Request $request Rest Request.
163 * @return true|\WP_Error True if the request has access to complete return request, WP_Error object otherwise.
164 */
165 public function complete_item_permissions_check( $request ) {
166 return current_user_can( 'edit_sc_orders' );
167 }
168 }
169