@@ -6,8 +6,8 @@ discard block |
||
6 | 6 | use EventEspresso\core\libraries\rest_api\Rest_Exception; |
7 | 7 | use EventEspresso\core\libraries\rest_api\Model_Data_Translator; |
8 | 8 | |
9 | -if ( !defined( 'EVENT_ESPRESSO_VERSION' ) ) { |
|
10 | - exit( 'No direct script access allowed' ); |
|
9 | +if ( ! defined('EVENT_ESPRESSO_VERSION')) { |
|
10 | + exit('No direct script access allowed'); |
|
11 | 11 | } |
12 | 12 | |
13 | 13 | /** |
@@ -46,22 +46,22 @@ discard block |
||
46 | 46 | * @param \WP_REST_Request $request |
47 | 47 | * @return \WP_REST_Response|\WP_Error |
48 | 48 | */ |
49 | - public static function handle_request_get_all( \WP_REST_Request $request) { |
|
49 | + public static function handle_request_get_all(\WP_REST_Request $request) { |
|
50 | 50 | $controller = new Read(); |
51 | - try{ |
|
51 | + try { |
|
52 | 52 | $matches = $controller->parse_route( |
53 | 53 | $request->get_route(), |
54 | - '~' . \EED_Core_Rest_Api::ee_api_namespace_for_regex . '(.*)~', |
|
55 | - array( 'version', 'model' ) |
|
54 | + '~'.\EED_Core_Rest_Api::ee_api_namespace_for_regex.'(.*)~', |
|
55 | + array('version', 'model') |
|
56 | 56 | ); |
57 | - $controller->set_requested_version( $matches[ 'version' ] ); |
|
58 | - $model_name_singular = \EEH_Inflector::singularize_and_upper( $matches[ 'model' ] ); |
|
59 | - if ( ! $controller->get_model_version_info()->is_model_name_in_this_version( $model_name_singular ) ) { |
|
57 | + $controller->set_requested_version($matches['version']); |
|
58 | + $model_name_singular = \EEH_Inflector::singularize_and_upper($matches['model']); |
|
59 | + if ( ! $controller->get_model_version_info()->is_model_name_in_this_version($model_name_singular)) { |
|
60 | 60 | return $controller->send_response( |
61 | 61 | new \WP_Error( |
62 | 62 | 'endpoint_parsing_error', |
63 | 63 | sprintf( |
64 | - __( 'There is no model for endpoint %s. Please contact event espresso support', 'event_espresso' ), |
|
64 | + __('There is no model for endpoint %s. Please contact event espresso support', 'event_espresso'), |
|
65 | 65 | $model_name_singular |
66 | 66 | ) |
67 | 67 | ) |
@@ -69,12 +69,12 @@ discard block |
||
69 | 69 | } |
70 | 70 | return $controller->send_response( |
71 | 71 | $controller->get_entities_from_model( |
72 | - $controller->get_model_version_info()->load_model( $model_name_singular ), |
|
72 | + $controller->get_model_version_info()->load_model($model_name_singular), |
|
73 | 73 | $request |
74 | 74 | ) |
75 | 75 | ); |
76 | - } catch( \Exception $e ) { |
|
77 | - return $controller->send_response( $e ); |
|
76 | + } catch (\Exception $e) { |
|
77 | + return $controller->send_response($e); |
|
78 | 78 | } |
79 | 79 | } |
80 | 80 | |
@@ -84,21 +84,21 @@ discard block |
||
84 | 84 | * @param \WP_REST_Request $request |
85 | 85 | * @return \WP_REST_Response|\WP_Error |
86 | 86 | */ |
87 | - public static function handle_request_get_one( \WP_REST_Request $request ) { |
|
87 | + public static function handle_request_get_one(\WP_REST_Request $request) { |
|
88 | 88 | $controller = new Read(); |
89 | - try{ |
|
89 | + try { |
|
90 | 90 | $matches = $controller->parse_route( |
91 | 91 | $request->get_route(), |
92 | - '~' . \EED_Core_Rest_Api::ee_api_namespace_for_regex . '(.*)/(.*)~', |
|
93 | - array( 'version', 'model', 'id' ) ); |
|
94 | - $controller->set_requested_version( $matches[ 'version' ] ); |
|
95 | - $model_name_singular = \EEH_Inflector::singularize_and_upper( $matches[ 'model' ] ); |
|
96 | - if ( ! $controller->get_model_version_info()->is_model_name_in_this_version( $model_name_singular ) ) { |
|
92 | + '~'.\EED_Core_Rest_Api::ee_api_namespace_for_regex.'(.*)/(.*)~', |
|
93 | + array('version', 'model', 'id') ); |
|
94 | + $controller->set_requested_version($matches['version']); |
|
95 | + $model_name_singular = \EEH_Inflector::singularize_and_upper($matches['model']); |
|
96 | + if ( ! $controller->get_model_version_info()->is_model_name_in_this_version($model_name_singular)) { |
|
97 | 97 | return $controller->send_response( |
98 | 98 | new \WP_Error( |
99 | 99 | 'endpoint_parsing_error', |
100 | 100 | sprintf( |
101 | - __( 'There is no model for endpoint %s. Please contact event espresso support', 'event_espresso' ), |
|
101 | + __('There is no model for endpoint %s. Please contact event espresso support', 'event_espresso'), |
|
102 | 102 | $model_name_singular |
103 | 103 | ) |
104 | 104 | ) |
@@ -106,12 +106,12 @@ discard block |
||
106 | 106 | } |
107 | 107 | return $controller->send_response( |
108 | 108 | $controller->get_entity_from_model( |
109 | - $controller->get_model_version_info()->load_model( $model_name_singular ), |
|
109 | + $controller->get_model_version_info()->load_model($model_name_singular), |
|
110 | 110 | $request |
111 | 111 | ) |
112 | 112 | ); |
113 | - } catch( \Exception $e ) { |
|
114 | - return $controller->send_response( $e ); |
|
113 | + } catch (\Exception $e) { |
|
114 | + return $controller->send_response($e); |
|
115 | 115 | } |
116 | 116 | } |
117 | 117 | |
@@ -123,40 +123,40 @@ discard block |
||
123 | 123 | * @param \WP_REST_Request $request |
124 | 124 | * @return \WP_REST_Response|\WP_Error |
125 | 125 | */ |
126 | - public static function handle_request_get_related( \WP_REST_Request $request ) { |
|
126 | + public static function handle_request_get_related(\WP_REST_Request $request) { |
|
127 | 127 | $controller = new Read(); |
128 | - try{ |
|
128 | + try { |
|
129 | 129 | $matches = $controller->parse_route( |
130 | 130 | $request->get_route(), |
131 | - '~' . \EED_Core_Rest_Api::ee_api_namespace_for_regex . '(.*)/(.*)/(.*)~', |
|
132 | - array( 'version', 'model', 'id', 'related_model' ) |
|
131 | + '~'.\EED_Core_Rest_Api::ee_api_namespace_for_regex.'(.*)/(.*)/(.*)~', |
|
132 | + array('version', 'model', 'id', 'related_model') |
|
133 | 133 | ); |
134 | - $controller->set_requested_version( $matches[ 'version' ] ); |
|
135 | - $main_model_name_singular = \EEH_Inflector::singularize_and_upper( $matches[ 'model' ] ); |
|
136 | - if ( ! $controller->get_model_version_info()->is_model_name_in_this_version( $main_model_name_singular ) ) { |
|
134 | + $controller->set_requested_version($matches['version']); |
|
135 | + $main_model_name_singular = \EEH_Inflector::singularize_and_upper($matches['model']); |
|
136 | + if ( ! $controller->get_model_version_info()->is_model_name_in_this_version($main_model_name_singular)) { |
|
137 | 137 | return $controller->send_response( |
138 | 138 | new \WP_Error( |
139 | 139 | 'endpoint_parsing_error', |
140 | 140 | sprintf( |
141 | - __( 'There is no model for endpoint %s. Please contact event espresso support', 'event_espresso' ), |
|
141 | + __('There is no model for endpoint %s. Please contact event espresso support', 'event_espresso'), |
|
142 | 142 | $main_model_name_singular |
143 | 143 | ) |
144 | 144 | ) |
145 | 145 | ); |
146 | 146 | } |
147 | - $main_model = $controller->get_model_version_info()->load_model( $main_model_name_singular ); |
|
147 | + $main_model = $controller->get_model_version_info()->load_model($main_model_name_singular); |
|
148 | 148 | //assume the related model name is plural and try to find the model's name |
149 | - $related_model_name_singular = \EEH_Inflector::singularize_and_upper( $matches[ 'related_model' ] ); |
|
150 | - if ( ! $controller->get_model_version_info()->is_model_name_in_this_version( $related_model_name_singular ) ) { |
|
149 | + $related_model_name_singular = \EEH_Inflector::singularize_and_upper($matches['related_model']); |
|
150 | + if ( ! $controller->get_model_version_info()->is_model_name_in_this_version($related_model_name_singular)) { |
|
151 | 151 | //so the word didn't singularize well. Maybe that's just because it's a singular word? |
152 | - $related_model_name_singular = \EEH_Inflector::humanize( $matches[ 'related_model' ] ); |
|
152 | + $related_model_name_singular = \EEH_Inflector::humanize($matches['related_model']); |
|
153 | 153 | } |
154 | - if ( ! $controller->get_model_version_info()->is_model_name_in_this_version( $related_model_name_singular ) ) { |
|
154 | + if ( ! $controller->get_model_version_info()->is_model_name_in_this_version($related_model_name_singular)) { |
|
155 | 155 | return $controller->send_response( |
156 | 156 | new \WP_Error( |
157 | 157 | 'endpoint_parsing_error', |
158 | 158 | sprintf( |
159 | - __( 'There is no model for endpoint %s. Please contact event espresso support', 'event_espresso' ), |
|
159 | + __('There is no model for endpoint %s. Please contact event espresso support', 'event_espresso'), |
|
160 | 160 | $related_model_name_singular |
161 | 161 | ) |
162 | 162 | ) |
@@ -165,13 +165,13 @@ discard block |
||
165 | 165 | |
166 | 166 | return $controller->send_response( |
167 | 167 | $controller->get_entities_from_relation( |
168 | - $request->get_param( 'id' ), |
|
169 | - $main_model->related_settings_for( $related_model_name_singular ) , |
|
168 | + $request->get_param('id'), |
|
169 | + $main_model->related_settings_for($related_model_name_singular), |
|
170 | 170 | $request |
171 | 171 | ) |
172 | 172 | ); |
173 | - } catch( \Exception $e ) { |
|
174 | - return $controller->send_response( $e ); |
|
173 | + } catch (\Exception $e) { |
|
174 | + return $controller->send_response($e); |
|
175 | 175 | } |
176 | 176 | } |
177 | 177 | |
@@ -184,28 +184,28 @@ discard block |
||
184 | 184 | * @param \WP_REST_Request $request |
185 | 185 | * @return array |
186 | 186 | */ |
187 | - public function get_entities_from_model( $model, $request) { |
|
188 | - $query_params = $this->create_model_query_params( $model, $request->get_params() ); |
|
189 | - if( ! Capabilities::current_user_has_partial_access_to( $model, $query_params[ 'caps' ] ) ) { |
|
190 | - $model_name_plural = \EEH_Inflector::pluralize_and_lower( $model->get_this_model_name() ); |
|
187 | + public function get_entities_from_model($model, $request) { |
|
188 | + $query_params = $this->create_model_query_params($model, $request->get_params()); |
|
189 | + if ( ! Capabilities::current_user_has_partial_access_to($model, $query_params['caps'])) { |
|
190 | + $model_name_plural = \EEH_Inflector::pluralize_and_lower($model->get_this_model_name()); |
|
191 | 191 | return new \WP_Error( |
192 | - sprintf( 'rest_%s_cannot_list', $model_name_plural ), |
|
192 | + sprintf('rest_%s_cannot_list', $model_name_plural), |
|
193 | 193 | sprintf( |
194 | - __( 'Sorry, you are not allowed to list %1$s. Missing permissions: %2$s', 'event_espresso' ), |
|
194 | + __('Sorry, you are not allowed to list %1$s. Missing permissions: %2$s', 'event_espresso'), |
|
195 | 195 | $model_name_plural, |
196 | - Capabilities::get_missing_permissions_string( $model, $query_params[ 'caps' ] ) |
|
196 | + Capabilities::get_missing_permissions_string($model, $query_params['caps']) |
|
197 | 197 | ), |
198 | - array( 'status' => 403 ) |
|
198 | + array('status' => 403) |
|
199 | 199 | ); |
200 | 200 | } |
201 | - if( ! $request->get_header( 'no_rest_headers' ) ) { |
|
202 | - $this->_set_headers_from_query_params( $model, $query_params ); |
|
201 | + if ( ! $request->get_header('no_rest_headers')) { |
|
202 | + $this->_set_headers_from_query_params($model, $query_params); |
|
203 | 203 | } |
204 | 204 | /** @type array $results */ |
205 | - $results = $model->get_all_wpdb_results( $query_params ); |
|
205 | + $results = $model->get_all_wpdb_results($query_params); |
|
206 | 206 | $nice_results = array( ); |
207 | - foreach ( $results as $result ) { |
|
208 | - $nice_results[ ] = $this->create_entity_from_wpdb_result( |
|
207 | + foreach ($results as $result) { |
|
208 | + $nice_results[] = $this->create_entity_from_wpdb_result( |
|
209 | 209 | $model, |
210 | 210 | $result, |
211 | 211 | $request |
@@ -226,64 +226,64 @@ discard block |
||
226 | 226 | * @param \WP_REST_Request $request |
227 | 227 | * @return array |
228 | 228 | */ |
229 | - public function get_entities_from_relation( $id, $relation, $request ) { |
|
230 | - $context = $this->validate_context( $request->get_param( 'caps' )); |
|
229 | + public function get_entities_from_relation($id, $relation, $request) { |
|
230 | + $context = $this->validate_context($request->get_param('caps')); |
|
231 | 231 | $model = $relation->get_this_model(); |
232 | 232 | $related_model = $relation->get_other_model(); |
233 | 233 | //check if they can access the 1st model object |
234 | - $query_params = array( array( $model->primary_key_name() => $id ),'limit' => 1 ); |
|
235 | - if( $model instanceof \EEM_Soft_Delete_Base ){ |
|
234 | + $query_params = array(array($model->primary_key_name() => $id), 'limit' => 1); |
|
235 | + if ($model instanceof \EEM_Soft_Delete_Base) { |
|
236 | 236 | $query_params = $model->alter_query_params_so_deleted_and_undeleted_items_included($query_params); |
237 | 237 | } |
238 | 238 | $restricted_query_params = $query_params; |
239 | - $restricted_query_params[ 'caps' ] = $context; |
|
240 | - $this->_set_debug_info( 'main model query params', $restricted_query_params ); |
|
241 | - $this->_set_debug_info( 'missing caps', Capabilities::get_missing_permissions_string( $related_model, $context ) ); |
|
239 | + $restricted_query_params['caps'] = $context; |
|
240 | + $this->_set_debug_info('main model query params', $restricted_query_params); |
|
241 | + $this->_set_debug_info('missing caps', Capabilities::get_missing_permissions_string($related_model, $context)); |
|
242 | 242 | |
243 | - if( |
|
243 | + if ( |
|
244 | 244 | ! ( |
245 | - Capabilities::current_user_has_partial_access_to( $related_model, $context ) |
|
246 | - && $model->exists( $restricted_query_params ) |
|
245 | + Capabilities::current_user_has_partial_access_to($related_model, $context) |
|
246 | + && $model->exists($restricted_query_params) |
|
247 | 247 | ) |
248 | - ){ |
|
249 | - if( $relation instanceof \EE_Belongs_To_Relation ) { |
|
250 | - $related_model_name_maybe_plural = strtolower( $related_model->get_this_model_name() ); |
|
251 | - }else{ |
|
252 | - $related_model_name_maybe_plural = \EEH_Inflector::pluralize_and_lower( $related_model->get_this_model_name() ); |
|
248 | + ) { |
|
249 | + if ($relation instanceof \EE_Belongs_To_Relation) { |
|
250 | + $related_model_name_maybe_plural = strtolower($related_model->get_this_model_name()); |
|
251 | + } else { |
|
252 | + $related_model_name_maybe_plural = \EEH_Inflector::pluralize_and_lower($related_model->get_this_model_name()); |
|
253 | 253 | } |
254 | 254 | return new \WP_Error( |
255 | - sprintf( 'rest_%s_cannot_list', $related_model_name_maybe_plural ), |
|
255 | + sprintf('rest_%s_cannot_list', $related_model_name_maybe_plural), |
|
256 | 256 | sprintf( |
257 | - __( 'Sorry, you are not allowed to list %1$s related to %2$s. Missing permissions: %3$s', 'event_espresso' ), |
|
257 | + __('Sorry, you are not allowed to list %1$s related to %2$s. Missing permissions: %3$s', 'event_espresso'), |
|
258 | 258 | $related_model_name_maybe_plural, |
259 | 259 | $relation->get_this_model()->get_this_model_name(), |
260 | 260 | implode( |
261 | 261 | ',', |
262 | 262 | array_keys( |
263 | - Capabilities::get_missing_permissions( $related_model, $context ) |
|
263 | + Capabilities::get_missing_permissions($related_model, $context) |
|
264 | 264 | ) |
265 | 265 | ) |
266 | 266 | ), |
267 | - array( 'status' => 403 ) |
|
267 | + array('status' => 403) |
|
268 | 268 | ); |
269 | 269 | } |
270 | - $query_params = $this->create_model_query_params( $relation->get_other_model(), $request->get_params() ); |
|
271 | - $query_params[0][ $relation->get_this_model()->get_this_model_name() . '.' . $relation->get_this_model()->primary_key_name() ] = $id; |
|
272 | - $query_params[ 'default_where_conditions' ] = 'none'; |
|
273 | - $query_params[ 'caps' ] = $context; |
|
274 | - if( ! $request->get_header( 'no_rest_headers' ) ) { |
|
275 | - $this->_set_headers_from_query_params( $relation->get_other_model(), $query_params ); |
|
270 | + $query_params = $this->create_model_query_params($relation->get_other_model(), $request->get_params()); |
|
271 | + $query_params[0][$relation->get_this_model()->get_this_model_name().'.'.$relation->get_this_model()->primary_key_name()] = $id; |
|
272 | + $query_params['default_where_conditions'] = 'none'; |
|
273 | + $query_params['caps'] = $context; |
|
274 | + if ( ! $request->get_header('no_rest_headers')) { |
|
275 | + $this->_set_headers_from_query_params($relation->get_other_model(), $query_params); |
|
276 | 276 | } |
277 | 277 | /** @type array $results */ |
278 | - $results = $relation->get_other_model()->get_all_wpdb_results( $query_params ); |
|
278 | + $results = $relation->get_other_model()->get_all_wpdb_results($query_params); |
|
279 | 279 | $nice_results = array(); |
280 | - foreach( $results as $result ) { |
|
280 | + foreach ($results as $result) { |
|
281 | 281 | $nice_result = $this->create_entity_from_wpdb_result( |
282 | 282 | $relation->get_other_model(), |
283 | 283 | $result, |
284 | 284 | $request |
285 | 285 | ); |
286 | - if( $relation instanceof \EE_HABTM_Relation ) { |
|
286 | + if ($relation instanceof \EE_HABTM_Relation) { |
|
287 | 287 | //put the unusual stuff (properties from the HABTM relation) first, and make sure |
288 | 288 | //if there are conflicts we prefer the properties from the main model |
289 | 289 | $join_model_result = $this->create_entity_from_wpdb_result( |
@@ -291,18 +291,18 @@ discard block |
||
291 | 291 | $result, |
292 | 292 | $request |
293 | 293 | ); |
294 | - $joined_result = array_merge( $nice_result, $join_model_result ); |
|
294 | + $joined_result = array_merge($nice_result, $join_model_result); |
|
295 | 295 | //but keep the meta stuff from the main model |
296 | - if( isset( $nice_result['meta'] ) ){ |
|
296 | + if (isset($nice_result['meta'])) { |
|
297 | 297 | $joined_result['meta'] = $nice_result['meta']; |
298 | 298 | } |
299 | 299 | $nice_result = $joined_result; |
300 | 300 | } |
301 | 301 | $nice_results[] = $nice_result; |
302 | 302 | } |
303 | - if( $relation instanceof \EE_Belongs_To_Relation ){ |
|
304 | - return array_shift( $nice_results ); |
|
305 | - }else{ |
|
303 | + if ($relation instanceof \EE_Belongs_To_Relation) { |
|
304 | + return array_shift($nice_results); |
|
305 | + } else { |
|
306 | 306 | return $nice_results; |
307 | 307 | } |
308 | 308 | } |
@@ -315,30 +315,30 @@ discard block |
||
315 | 315 | * @param array $query_params |
316 | 316 | * @return void |
317 | 317 | */ |
318 | - protected function _set_headers_from_query_params( $model, $query_params ) { |
|
319 | - $this->_set_debug_info( 'model query params', $query_params ); |
|
320 | - $this->_set_debug_info( 'missing caps', Capabilities::get_missing_permissions_string( $model, $query_params[ 'caps' ] ) ); |
|
318 | + protected function _set_headers_from_query_params($model, $query_params) { |
|
319 | + $this->_set_debug_info('model query params', $query_params); |
|
320 | + $this->_set_debug_info('missing caps', Capabilities::get_missing_permissions_string($model, $query_params['caps'])); |
|
321 | 321 | //normally the limit to a 2-part array, where the 2nd item is the limit |
322 | - if( ! isset( $query_params[ 'limit' ] ) ) { |
|
323 | - $query_params[ 'limit' ] = \EED_Core_Rest_Api::get_default_query_limit(); |
|
322 | + if ( ! isset($query_params['limit'])) { |
|
323 | + $query_params['limit'] = \EED_Core_Rest_Api::get_default_query_limit(); |
|
324 | 324 | } |
325 | - if( is_array( $query_params[ 'limit' ] ) ) { |
|
326 | - $limit_parts = $query_params[ 'limit' ]; |
|
325 | + if (is_array($query_params['limit'])) { |
|
326 | + $limit_parts = $query_params['limit']; |
|
327 | 327 | } else { |
328 | - $limit_parts = explode(',', $query_params[ 'limit' ] ); |
|
329 | - if( count( $limit_parts ) == 1 ){ |
|
330 | - $limit_parts = array(0, $limit_parts[ 0 ] ); |
|
328 | + $limit_parts = explode(',', $query_params['limit']); |
|
329 | + if (count($limit_parts) == 1) { |
|
330 | + $limit_parts = array(0, $limit_parts[0]); |
|
331 | 331 | } |
332 | 332 | } |
333 | 333 | //remove the group by and having parts of the query, as those will |
334 | 334 | //make the sql query return an array of values, instead of just a single value |
335 | - unset( $query_params[ 'group_by' ], $query_params[ 'having' ], $query_params[ 'limit' ] ); |
|
336 | - $count = $model->count( $query_params, null, true ); |
|
335 | + unset($query_params['group_by'], $query_params['having'], $query_params['limit']); |
|
336 | + $count = $model->count($query_params, null, true); |
|
337 | 337 | |
338 | - $pages = $count / $limit_parts[ 1 ]; |
|
339 | - $this->_set_response_header( 'Total', $count, false ); |
|
340 | - $this->_set_response_header( 'PageSize', $limit_parts[ 1 ], false ); |
|
341 | - $this->_set_response_header( 'TotalPages', ceil( $pages ), false ); |
|
338 | + $pages = $count / $limit_parts[1]; |
|
339 | + $this->_set_response_header('Total', $count, false); |
|
340 | + $this->_set_response_header('PageSize', $limit_parts[1], false); |
|
341 | + $this->_set_response_header('TotalPages', ceil($pages), false); |
|
342 | 342 | } |
343 | 343 | |
344 | 344 | |
@@ -351,47 +351,47 @@ discard block |
||
351 | 351 | * @param string $deprecated no longer used |
352 | 352 | * @return array ready for being converted into json for sending to client |
353 | 353 | */ |
354 | - public function create_entity_from_wpdb_result( $model, $db_row, $rest_request, $deprecated = null ) { |
|
355 | - if( ! $rest_request instanceof \WP_REST_Request ) { |
|
354 | + public function create_entity_from_wpdb_result($model, $db_row, $rest_request, $deprecated = null) { |
|
355 | + if ( ! $rest_request instanceof \WP_REST_Request) { |
|
356 | 356 | //ok so this was called in the old style, where the 3rd arg was |
357 | 357 | //$include, and the 4th arg was $context |
358 | 358 | //now setup the request just to avoid fatal errors, although we won't be able |
359 | 359 | //to truly make use of it because it's kinda devoid of info |
360 | 360 | $rest_request = new \WP_REST_Request(); |
361 | - $rest_request->set_param( 'include', $rest_request ); |
|
362 | - $rest_request->set_param( 'caps', $deprecated ); |
|
361 | + $rest_request->set_param('include', $rest_request); |
|
362 | + $rest_request->set_param('caps', $deprecated); |
|
363 | 363 | } |
364 | - if( $rest_request->get_param( 'caps' ) == null ) { |
|
365 | - $rest_request->set_param( 'caps', \EEM_Base::caps_read ); |
|
364 | + if ($rest_request->get_param('caps') == null) { |
|
365 | + $rest_request->set_param('caps', \EEM_Base::caps_read); |
|
366 | 366 | } |
367 | - $entity_array = $this->_create_bare_entity_from_wpdb_results( $model, $db_row ); |
|
368 | - $entity_array = $this->_add_extra_fields( $model, $db_row, $entity_array ); |
|
369 | - $entity_array[ '_links' ] = $this->_get_entity_links( $model, $db_row, $entity_array ); |
|
370 | - $entity_array[ '_calculated_fields'] = $this->_get_entity_calculations( $model, $db_row, $rest_request ); |
|
371 | - $entity_array = $this->_include_requested_models( $model, $rest_request, $entity_array ); |
|
367 | + $entity_array = $this->_create_bare_entity_from_wpdb_results($model, $db_row); |
|
368 | + $entity_array = $this->_add_extra_fields($model, $db_row, $entity_array); |
|
369 | + $entity_array['_links'] = $this->_get_entity_links($model, $db_row, $entity_array); |
|
370 | + $entity_array['_calculated_fields'] = $this->_get_entity_calculations($model, $db_row, $rest_request); |
|
371 | + $entity_array = $this->_include_requested_models($model, $rest_request, $entity_array); |
|
372 | 372 | $entity_array = apply_filters( |
373 | 373 | 'FHEE__Read__create_entity_from_wpdb_results__entity_before_inaccessible_field_removal', |
374 | 374 | $entity_array, |
375 | 375 | $model, |
376 | - $rest_request->get_param( 'caps' ), |
|
376 | + $rest_request->get_param('caps'), |
|
377 | 377 | $rest_request, |
378 | 378 | $this |
379 | 379 | ); |
380 | 380 | $result_without_inaccessible_fields = Capabilities::filter_out_inaccessible_entity_fields( |
381 | 381 | $entity_array, |
382 | 382 | $model, |
383 | - $rest_request->get_param( 'caps' ), |
|
383 | + $rest_request->get_param('caps'), |
|
384 | 384 | $this->get_model_version_info() |
385 | 385 | ); |
386 | 386 | $this->_set_debug_info( |
387 | 387 | 'inaccessible fields', |
388 | - array_keys( array_diff_key( $entity_array, $result_without_inaccessible_fields ) ) |
|
388 | + array_keys(array_diff_key($entity_array, $result_without_inaccessible_fields)) |
|
389 | 389 | ); |
390 | 390 | return apply_filters( |
391 | 391 | 'FHEE__Read__create_entity_from_wpdb_results__entity_return', |
392 | 392 | $result_without_inaccessible_fields, |
393 | 393 | $model, |
394 | - $rest_request->get_param( 'caps' ) |
|
394 | + $rest_request->get_param('caps') |
|
395 | 395 | ); |
396 | 396 | } |
397 | 397 | |
@@ -403,38 +403,38 @@ discard block |
||
403 | 403 | * @param array $db_row |
404 | 404 | * @return array entity mostly ready for converting to JSON and sending in the response |
405 | 405 | */ |
406 | - protected function _create_bare_entity_from_wpdb_results( \EEM_Base $model, $db_row ) { |
|
407 | - $result = $model->deduce_fields_n_values_from_cols_n_values( $db_row ); |
|
408 | - $result = array_intersect_key( $result, $this->get_model_version_info()->fields_on_model_in_this_version( $model ) ); |
|
409 | - foreach( $result as $field_name => $raw_field_value ) { |
|
406 | + protected function _create_bare_entity_from_wpdb_results(\EEM_Base $model, $db_row) { |
|
407 | + $result = $model->deduce_fields_n_values_from_cols_n_values($db_row); |
|
408 | + $result = array_intersect_key($result, $this->get_model_version_info()->fields_on_model_in_this_version($model)); |
|
409 | + foreach ($result as $field_name => $raw_field_value) { |
|
410 | 410 | $field_obj = $model->field_settings_for($field_name); |
411 | - $field_value = $field_obj->prepare_for_set_from_db( $raw_field_value ); |
|
412 | - if( $this->is_subclass_of_one( $field_obj, $this->get_model_version_info()->fields_ignored() ) ){ |
|
413 | - unset( $result[ $field_name ] ); |
|
414 | - }elseif( |
|
415 | - $this->is_subclass_of_one( $field_obj, $this->get_model_version_info()->fields_that_have_rendered_format() ) |
|
416 | - ){ |
|
417 | - $result[ $field_name ] = array( |
|
418 | - 'raw' => $field_obj->prepare_for_get( $field_value ), |
|
419 | - 'rendered' => $field_obj->prepare_for_pretty_echoing( $field_value ) |
|
411 | + $field_value = $field_obj->prepare_for_set_from_db($raw_field_value); |
|
412 | + if ($this->is_subclass_of_one($field_obj, $this->get_model_version_info()->fields_ignored())) { |
|
413 | + unset($result[$field_name]); |
|
414 | + }elseif ( |
|
415 | + $this->is_subclass_of_one($field_obj, $this->get_model_version_info()->fields_that_have_rendered_format()) |
|
416 | + ) { |
|
417 | + $result[$field_name] = array( |
|
418 | + 'raw' => $field_obj->prepare_for_get($field_value), |
|
419 | + 'rendered' => $field_obj->prepare_for_pretty_echoing($field_value) |
|
420 | 420 | ); |
421 | - }elseif( |
|
422 | - $this->is_subclass_of_one( $field_obj, $this->get_model_version_info()->fields_that_have_pretty_format() ) |
|
423 | - ){ |
|
424 | - $result[ $field_name ] = array( |
|
425 | - 'raw' => $field_obj->prepare_for_get( $field_value ), |
|
426 | - 'pretty' => $field_obj->prepare_for_pretty_echoing( $field_value ) |
|
421 | + }elseif ( |
|
422 | + $this->is_subclass_of_one($field_obj, $this->get_model_version_info()->fields_that_have_pretty_format()) |
|
423 | + ) { |
|
424 | + $result[$field_name] = array( |
|
425 | + 'raw' => $field_obj->prepare_for_get($field_value), |
|
426 | + 'pretty' => $field_obj->prepare_for_pretty_echoing($field_value) |
|
427 | 427 | ); |
428 | - } elseif ( $field_obj instanceof \EE_Datetime_Field ) { |
|
429 | - $result[ $field_name ] = Model_Data_Translator::prepare_field_value_for_json( |
|
428 | + } elseif ($field_obj instanceof \EE_Datetime_Field) { |
|
429 | + $result[$field_name] = Model_Data_Translator::prepare_field_value_for_json( |
|
430 | 430 | $field_obj, |
431 | 431 | $field_value, |
432 | 432 | $this->get_model_version_info()->requested_version() |
433 | 433 | ); |
434 | 434 | } else { |
435 | - $result[ $field_name ] = Model_Data_Translator::prepare_field_value_for_json( |
|
435 | + $result[$field_name] = Model_Data_Translator::prepare_field_value_for_json( |
|
436 | 436 | $field_obj, |
437 | - $field_obj->prepare_for_get( $field_value ), |
|
437 | + $field_obj->prepare_for_get($field_value), |
|
438 | 438 | $this->get_model_version_info()->requested_version() |
439 | 439 | ); |
440 | 440 | } |
@@ -449,9 +449,9 @@ discard block |
||
449 | 449 | * @param array $entity_array |
450 | 450 | * @return array modified entity |
451 | 451 | */ |
452 | - protected function _add_extra_fields( \EEM_Base $model, $db_row, $entity_array ) { |
|
453 | - if( $model instanceof \EEM_CPT_Base ) { |
|
454 | - $entity_array[ 'link' ] = get_permalink( $db_row[ $model->get_primary_key_field()->get_qualified_column() ] ); |
|
452 | + protected function _add_extra_fields(\EEM_Base $model, $db_row, $entity_array) { |
|
453 | + if ($model instanceof \EEM_CPT_Base) { |
|
454 | + $entity_array['link'] = get_permalink($db_row[$model->get_primary_key_field()->get_qualified_column()]); |
|
455 | 455 | } |
456 | 456 | return $entity_array; |
457 | 457 | } |
@@ -465,52 +465,52 @@ discard block |
||
465 | 465 | * @param array $entity_array |
466 | 466 | * @return array the _links item in the entity |
467 | 467 | */ |
468 | - protected function _get_entity_links( $model, $db_row, $entity_array ) { |
|
468 | + protected function _get_entity_links($model, $db_row, $entity_array) { |
|
469 | 469 | //add basic links |
470 | 470 | $links = array(); |
471 | - if( $model instanceof \EEM_Base |
|
472 | - && $model->has_primary_key_field() ) { |
|
473 | - $links[ 'self' ] = array( |
|
471 | + if ($model instanceof \EEM_Base |
|
472 | + && $model->has_primary_key_field()) { |
|
473 | + $links['self'] = array( |
|
474 | 474 | array( |
475 | 475 | 'href' => $this->get_versioned_link_to( |
476 | - \EEH_Inflector::pluralize_and_lower( $model->get_this_model_name() ) . '/' . $entity_array[ $model->primary_key_name() ] |
|
476 | + \EEH_Inflector::pluralize_and_lower($model->get_this_model_name()).'/'.$entity_array[$model->primary_key_name()] |
|
477 | 477 | ) |
478 | 478 | ) |
479 | 479 | ); |
480 | 480 | } |
481 | - $links[ 'collection' ] = array( |
|
481 | + $links['collection'] = array( |
|
482 | 482 | array( |
483 | 483 | 'href' => $this->get_versioned_link_to( |
484 | - \EEH_Inflector::pluralize_and_lower( $model->get_this_model_name() ) |
|
484 | + \EEH_Inflector::pluralize_and_lower($model->get_this_model_name()) |
|
485 | 485 | ) |
486 | 486 | ) |
487 | 487 | ); |
488 | 488 | |
489 | 489 | //add link to the wp core endpoint, if wp api is active |
490 | 490 | global $wp_rest_server; |
491 | - if( $model instanceof \EEM_CPT_Base |
|
491 | + if ($model instanceof \EEM_CPT_Base |
|
492 | 492 | && $wp_rest_server instanceof \WP_REST_Server |
493 | - && $wp_rest_server->get_route_options( '/wp/v2/posts' ) |
|
494 | - && $model->has_primary_key_field() ) |
|
493 | + && $wp_rest_server->get_route_options('/wp/v2/posts') |
|
494 | + && $model->has_primary_key_field()) |
|
495 | 495 | { |
496 | - $links[ \EED_Core_Rest_Api::ee_api_link_namespace . 'self_wp_post' ] = array( |
|
496 | + $links[\EED_Core_Rest_Api::ee_api_link_namespace.'self_wp_post'] = array( |
|
497 | 497 | array( |
498 | - 'href' => rest_url( '/wp/v2/posts/' . $db_row[ $model->get_primary_key_field()->get_qualified_column() ] ), |
|
498 | + 'href' => rest_url('/wp/v2/posts/'.$db_row[$model->get_primary_key_field()->get_qualified_column()]), |
|
499 | 499 | 'single' => true |
500 | 500 | ) |
501 | 501 | ); |
502 | 502 | } |
503 | 503 | |
504 | 504 | //add links to related models |
505 | - foreach( $this->get_model_version_info()->relation_settings( $model ) as $relation_name => $relation_obj ) { |
|
506 | - $related_model_part = Read::get_related_entity_name( $relation_name, $relation_obj ); |
|
507 | - if( $model instanceof \EEM_Base |
|
508 | - && $model->has_primary_key_field() ) |
|
505 | + foreach ($this->get_model_version_info()->relation_settings($model) as $relation_name => $relation_obj) { |
|
506 | + $related_model_part = Read::get_related_entity_name($relation_name, $relation_obj); |
|
507 | + if ($model instanceof \EEM_Base |
|
508 | + && $model->has_primary_key_field()) |
|
509 | 509 | { |
510 | - $links[ \EED_Core_Rest_Api::ee_api_link_namespace . $related_model_part ] = array( |
|
510 | + $links[\EED_Core_Rest_Api::ee_api_link_namespace.$related_model_part] = array( |
|
511 | 511 | array( |
512 | 512 | 'href' => $this->get_versioned_link_to( |
513 | - \EEH_Inflector::pluralize_and_lower( $model->get_this_model_name() ) . '/' . $entity_array[ $model->primary_key_name() ] . '/' . $related_model_part |
|
513 | + \EEH_Inflector::pluralize_and_lower($model->get_this_model_name()).'/'.$entity_array[$model->primary_key_name()].'/'.$related_model_part |
|
514 | 514 | ), |
515 | 515 | 'single' => $relation_obj instanceof \EE_Belongs_To_Relation ? true : false |
516 | 516 | ) |
@@ -527,51 +527,51 @@ discard block |
||
527 | 527 | * @param array $entity_array |
528 | 528 | * @return array the modified entity |
529 | 529 | */ |
530 | - protected function _include_requested_models( \EEM_Base $model, \WP_REST_Request $rest_request, $entity_array ) { |
|
531 | - $includes_for_this_model = $this->explode_and_get_items_prefixed_with( $rest_request->get_param( 'include' ), '' ); |
|
532 | - $includes_for_this_model = $this->_remove_model_names_from_array( $includes_for_this_model ); |
|
530 | + protected function _include_requested_models(\EEM_Base $model, \WP_REST_Request $rest_request, $entity_array) { |
|
531 | + $includes_for_this_model = $this->explode_and_get_items_prefixed_with($rest_request->get_param('include'), ''); |
|
532 | + $includes_for_this_model = $this->_remove_model_names_from_array($includes_for_this_model); |
|
533 | 533 | //if they passed in * or didn't specify any includes, return everything |
534 | - if( ! in_array( '*', $includes_for_this_model ) |
|
535 | - && ! empty( $includes_for_this_model ) ) { |
|
536 | - if( $model->has_primary_key_field() ) { |
|
534 | + if ( ! in_array('*', $includes_for_this_model) |
|
535 | + && ! empty($includes_for_this_model)) { |
|
536 | + if ($model->has_primary_key_field()) { |
|
537 | 537 | //always include the primary key. ya just gotta know that at least |
538 | 538 | $includes_for_this_model[] = $model->primary_key_name(); |
539 | 539 | } |
540 | - if( $this->explode_and_get_items_prefixed_with( $rest_request->get_param( 'calculate' ), '' ) ) { |
|
540 | + if ($this->explode_and_get_items_prefixed_with($rest_request->get_param('calculate'), '')) { |
|
541 | 541 | $includes_for_this_model[] = '_calculated_fields'; |
542 | 542 | } |
543 | - $entity_array = array_intersect_key( $entity_array, array_flip( $includes_for_this_model ) ); |
|
543 | + $entity_array = array_intersect_key($entity_array, array_flip($includes_for_this_model)); |
|
544 | 544 | } |
545 | - $relation_settings = $this->get_model_version_info()->relation_settings( $model ); |
|
546 | - foreach( $relation_settings as $relation_name => $relation_obj ) { |
|
545 | + $relation_settings = $this->get_model_version_info()->relation_settings($model); |
|
546 | + foreach ($relation_settings as $relation_name => $relation_obj) { |
|
547 | 547 | $related_fields_to_include = $this->explode_and_get_items_prefixed_with( |
548 | - $rest_request->get_param( 'include' ), |
|
548 | + $rest_request->get_param('include'), |
|
549 | 549 | $relation_name |
550 | 550 | ); |
551 | 551 | $related_fields_to_calculate = $this->explode_and_get_items_prefixed_with( |
552 | - $rest_request->get_param( 'calculate' ), |
|
552 | + $rest_request->get_param('calculate'), |
|
553 | 553 | $relation_name |
554 | 554 | ); |
555 | 555 | //did they specify they wanted to include a related model, or |
556 | 556 | //specific fields from a related model? |
557 | 557 | //or did they specify to calculate a field from a related model? |
558 | - if( $related_fields_to_include || $related_fields_to_calculate ) { |
|
558 | + if ($related_fields_to_include || $related_fields_to_calculate) { |
|
559 | 559 | //if so, we should include at least some part of the related model |
560 | 560 | $pretend_related_request = new \WP_REST_Request(); |
561 | 561 | $pretend_related_request->set_query_params( |
562 | 562 | array( |
563 | - 'caps' => $rest_request->get_param( 'caps' ), |
|
563 | + 'caps' => $rest_request->get_param('caps'), |
|
564 | 564 | 'include' => $related_fields_to_include, |
565 | 565 | 'calculate' => $related_fields_to_calculate, |
566 | 566 | ) |
567 | 567 | ); |
568 | - $pretend_related_request->add_header( 'no_rest_headers', true ); |
|
568 | + $pretend_related_request->add_header('no_rest_headers', true); |
|
569 | 569 | $related_results = $this->get_entities_from_relation( |
570 | - $entity_array[ $model->primary_key_name() ], |
|
570 | + $entity_array[$model->primary_key_name()], |
|
571 | 571 | $relation_obj, |
572 | 572 | $pretend_related_request |
573 | 573 | ); |
574 | - $entity_array[ Read::get_related_entity_name( $relation_name, $relation_obj ) ] = $related_results instanceof \WP_Error |
|
574 | + $entity_array[Read::get_related_entity_name($relation_name, $relation_obj)] = $related_results instanceof \WP_Error |
|
575 | 575 | ? null |
576 | 576 | : $related_results; |
577 | 577 | } |
@@ -585,8 +585,8 @@ discard block |
||
585 | 585 | * @param array $arr |
586 | 586 | * @return array |
587 | 587 | */ |
588 | - private function _remove_model_names_from_array( $arr ) { |
|
589 | - return array_diff( $arr, array_keys( \EE_Registry::instance()->non_abstract_db_models ) ); |
|
588 | + private function _remove_model_names_from_array($arr) { |
|
589 | + return array_diff($arr, array_keys(\EE_Registry::instance()->non_abstract_db_models)); |
|
590 | 590 | } |
591 | 591 | /** |
592 | 592 | * Gets the calculated fields for the response |
@@ -596,15 +596,15 @@ discard block |
||
596 | 596 | * @param \WP_REST_Request $rest_request |
597 | 597 | * @return array the _calculations item in the entity |
598 | 598 | */ |
599 | - protected function _get_entity_calculations( $model, $wpdb_row, $rest_request ) { |
|
599 | + protected function _get_entity_calculations($model, $wpdb_row, $rest_request) { |
|
600 | 600 | $calculated_fields = $this->explode_and_get_items_prefixed_with( |
601 | - $rest_request->get_param( 'calculate' ), |
|
601 | + $rest_request->get_param('calculate'), |
|
602 | 602 | '' |
603 | 603 | ); |
604 | 604 | //note: setting calculate=* doesn't do anything |
605 | 605 | $calculated_fields_to_return = new \stdClass(); |
606 | - foreach( $calculated_fields as $field_to_calculate ) { |
|
607 | - try{ |
|
606 | + foreach ($calculated_fields as $field_to_calculate) { |
|
607 | + try { |
|
608 | 608 | $calculated_fields_to_return->$field_to_calculate = Model_Data_Translator::prepare_field_value_for_json( |
609 | 609 | null, |
610 | 610 | $this->_fields_calculator->retrieve_calculated_field_value( |
@@ -616,10 +616,10 @@ discard block |
||
616 | 616 | ), |
617 | 617 | $this->get_model_version_info()->requested_version() |
618 | 618 | ); |
619 | - } catch( Rest_Exception $e ) { |
|
619 | + } catch (Rest_Exception $e) { |
|
620 | 620 | //if we don't have permission to read it, just leave it out. but let devs know about the problem |
621 | 621 | $this->_set_response_header( |
622 | - 'Notices-Field-Calculation-Errors[' . $e->get_string_code() . '][' . $model->get_this_model_name() . '][' . $field_to_calculate . ']', |
|
622 | + 'Notices-Field-Calculation-Errors['.$e->get_string_code().']['.$model->get_this_model_name().']['.$field_to_calculate.']', |
|
623 | 623 | $e->getMessage(), |
624 | 624 | true |
625 | 625 | ); |
@@ -633,7 +633,7 @@ discard block |
||
633 | 633 | * @param string $link_part_after_version_and_slash eg "events/10/datetimes" |
634 | 634 | * @return string url eg "http://mysite.com/wp-json/ee/v4.6/events/10/datetimes" |
635 | 635 | */ |
636 | - public function get_versioned_link_to( $link_part_after_version_and_slash ) { |
|
636 | + public function get_versioned_link_to($link_part_after_version_and_slash) { |
|
637 | 637 | return rest_url( |
638 | 638 | \EED_Core_Rest_Api::ee_api_namespace |
639 | 639 | . $this->get_model_version_info()->requested_version() |
@@ -649,11 +649,11 @@ discard block |
||
649 | 649 | * @param \EE_Model_Relation_Base $relation_obj |
650 | 650 | * @return string |
651 | 651 | */ |
652 | - public static function get_related_entity_name( $relation_name, $relation_obj ){ |
|
653 | - if( $relation_obj instanceof \EE_Belongs_To_Relation ) { |
|
654 | - return strtolower( $relation_name ); |
|
655 | - }else{ |
|
656 | - return \EEH_Inflector::pluralize_and_lower( $relation_name ); |
|
652 | + public static function get_related_entity_name($relation_name, $relation_obj) { |
|
653 | + if ($relation_obj instanceof \EE_Belongs_To_Relation) { |
|
654 | + return strtolower($relation_name); |
|
655 | + } else { |
|
656 | + return \EEH_Inflector::pluralize_and_lower($relation_name); |
|
657 | 657 | } |
658 | 658 | } |
659 | 659 | |
@@ -666,43 +666,43 @@ discard block |
||
666 | 666 | * @param \WP_REST_Request $request |
667 | 667 | * @return array |
668 | 668 | */ |
669 | - public function get_entity_from_model( $model, $request ) { |
|
670 | - $query_params = array( array( $model->primary_key_name() => $request->get_param( 'id' ) ),'limit' => 1); |
|
671 | - if( $model instanceof \EEM_Soft_Delete_Base ){ |
|
669 | + public function get_entity_from_model($model, $request) { |
|
670 | + $query_params = array(array($model->primary_key_name() => $request->get_param('id')), 'limit' => 1); |
|
671 | + if ($model instanceof \EEM_Soft_Delete_Base) { |
|
672 | 672 | $query_params = $model->alter_query_params_so_deleted_and_undeleted_items_included($query_params); |
673 | 673 | } |
674 | 674 | $restricted_query_params = $query_params; |
675 | - $restricted_query_params[ 'caps' ] = $this->validate_context( $request->get_param( 'caps' ) ); |
|
676 | - $this->_set_debug_info( 'model query params', $restricted_query_params ); |
|
677 | - $model_rows = $model->get_all_wpdb_results( $restricted_query_params ); |
|
678 | - if ( ! empty ( $model_rows ) ) { |
|
675 | + $restricted_query_params['caps'] = $this->validate_context($request->get_param('caps')); |
|
676 | + $this->_set_debug_info('model query params', $restricted_query_params); |
|
677 | + $model_rows = $model->get_all_wpdb_results($restricted_query_params); |
|
678 | + if ( ! empty ($model_rows)) { |
|
679 | 679 | return $this->create_entity_from_wpdb_result( |
680 | 680 | $model, |
681 | - array_shift( $model_rows ), |
|
681 | + array_shift($model_rows), |
|
682 | 682 | $request ); |
683 | 683 | } else { |
684 | 684 | //ok let's test to see if we WOULD have found it, had we not had restrictions from missing capabilities |
685 | - $lowercase_model_name = strtolower( $model->get_this_model_name() ); |
|
686 | - $model_rows_found_sans_restrictions = $model->get_all_wpdb_results( $query_params ); |
|
687 | - if( ! empty( $model_rows_found_sans_restrictions ) ) { |
|
685 | + $lowercase_model_name = strtolower($model->get_this_model_name()); |
|
686 | + $model_rows_found_sans_restrictions = $model->get_all_wpdb_results($query_params); |
|
687 | + if ( ! empty($model_rows_found_sans_restrictions)) { |
|
688 | 688 | //you got shafted- it existed but we didn't want to tell you! |
689 | 689 | return new \WP_Error( |
690 | 690 | 'rest_user_cannot_read', |
691 | 691 | sprintf( |
692 | - __( 'Sorry, you cannot read this %1$s. Missing permissions are: %2$s', 'event_espresso' ), |
|
693 | - strtolower( $model->get_this_model_name() ), |
|
692 | + __('Sorry, you cannot read this %1$s. Missing permissions are: %2$s', 'event_espresso'), |
|
693 | + strtolower($model->get_this_model_name()), |
|
694 | 694 | Capabilities::get_missing_permissions_string( |
695 | 695 | $model, |
696 | - $this->validate_context( $request->get_param( 'caps' ) ) ) |
|
696 | + $this->validate_context($request->get_param('caps')) ) |
|
697 | 697 | ), |
698 | - array( 'status' => 403 ) |
|
698 | + array('status' => 403) |
|
699 | 699 | ); |
700 | 700 | } else { |
701 | 701 | //it's not you. It just doesn't exist |
702 | 702 | return new \WP_Error( |
703 | - sprintf( 'rest_%s_invalid_id', $lowercase_model_name ), |
|
704 | - sprintf( __( 'Invalid %s ID.', 'event_espresso' ), $lowercase_model_name ), |
|
705 | - array( 'status' => 404 ) |
|
703 | + sprintf('rest_%s_invalid_id', $lowercase_model_name), |
|
704 | + sprintf(__('Invalid %s ID.', 'event_espresso'), $lowercase_model_name), |
|
705 | + array('status' => 404) |
|
706 | 706 | ); |
707 | 707 | } |
708 | 708 | } |
@@ -715,14 +715,14 @@ discard block |
||
715 | 715 | * @param string $context |
716 | 716 | * @return string array key of EEM_Base::cap_contexts_to_cap_action_map() |
717 | 717 | */ |
718 | - public function validate_context( $context ) { |
|
719 | - if( ! $context ) { |
|
718 | + public function validate_context($context) { |
|
719 | + if ( ! $context) { |
|
720 | 720 | $context = \EEM_Base::caps_read; |
721 | 721 | } |
722 | 722 | $valid_contexts = \EEM_Base::valid_cap_contexts(); |
723 | - if( in_array( $context, $valid_contexts ) ){ |
|
723 | + if (in_array($context, $valid_contexts)) { |
|
724 | 724 | return $context; |
725 | - }else{ |
|
725 | + } else { |
|
726 | 726 | return \EEM_Base::caps_read; |
727 | 727 | } |
728 | 728 | } |
@@ -741,77 +741,77 @@ discard block |
||
741 | 741 | * that absolutely no results should be returned |
742 | 742 | * @throws \EE_Error |
743 | 743 | */ |
744 | - public function create_model_query_params( $model, $query_parameters ) { |
|
744 | + public function create_model_query_params($model, $query_parameters) { |
|
745 | 745 | $model_query_params = array( ); |
746 | - if ( isset( $query_parameters[ 'where' ] ) ) { |
|
747 | - $model_query_params[ 0 ] = Model_Data_Translator::prepare_conditions_query_params_for_models( |
|
748 | - $query_parameters[ 'where' ], |
|
746 | + if (isset($query_parameters['where'])) { |
|
747 | + $model_query_params[0] = Model_Data_Translator::prepare_conditions_query_params_for_models( |
|
748 | + $query_parameters['where'], |
|
749 | 749 | $model, |
750 | 750 | $this->get_model_version_info()->requested_version() |
751 | 751 | ); |
752 | 752 | } |
753 | - if ( isset( $query_parameters[ 'order_by' ] ) ) { |
|
754 | - $order_by = $query_parameters[ 'order_by' ]; |
|
755 | - } elseif ( isset( $query_parameters[ 'orderby' ] ) ) { |
|
756 | - $order_by = $query_parameters[ 'orderby' ]; |
|
757 | - }else{ |
|
753 | + if (isset($query_parameters['order_by'])) { |
|
754 | + $order_by = $query_parameters['order_by']; |
|
755 | + } elseif (isset($query_parameters['orderby'])) { |
|
756 | + $order_by = $query_parameters['orderby']; |
|
757 | + } else { |
|
758 | 758 | $order_by = null; |
759 | 759 | } |
760 | - if( $order_by !== null ){ |
|
761 | - $model_query_params[ 'order_by' ] = $order_by; |
|
760 | + if ($order_by !== null) { |
|
761 | + $model_query_params['order_by'] = $order_by; |
|
762 | 762 | } |
763 | - if ( isset( $query_parameters[ 'group_by' ] ) ) { |
|
764 | - $group_by = $query_parameters[ 'group_by' ]; |
|
765 | - } elseif ( isset( $query_parameters[ 'groupby' ] ) ) { |
|
766 | - $group_by = $query_parameters[ 'groupby' ]; |
|
767 | - }else{ |
|
768 | - $group_by = array_keys( $model->get_combined_primary_key_fields() ); |
|
763 | + if (isset($query_parameters['group_by'])) { |
|
764 | + $group_by = $query_parameters['group_by']; |
|
765 | + } elseif (isset($query_parameters['groupby'])) { |
|
766 | + $group_by = $query_parameters['groupby']; |
|
767 | + } else { |
|
768 | + $group_by = array_keys($model->get_combined_primary_key_fields()); |
|
769 | 769 | } |
770 | - if( $group_by !== null ){ |
|
771 | - $model_query_params[ 'group_by' ] = $group_by; |
|
770 | + if ($group_by !== null) { |
|
771 | + $model_query_params['group_by'] = $group_by; |
|
772 | 772 | } |
773 | - if ( isset( $query_parameters[ 'having' ] ) ) { |
|
774 | - $model_query_params[ 'having' ] = Model_Data_Translator::prepare_conditions_query_params_for_models( |
|
775 | - $query_parameters[ 'having' ], |
|
773 | + if (isset($query_parameters['having'])) { |
|
774 | + $model_query_params['having'] = Model_Data_Translator::prepare_conditions_query_params_for_models( |
|
775 | + $query_parameters['having'], |
|
776 | 776 | $model, |
777 | 777 | $this->get_model_version_info()->requested_version() |
778 | 778 | ); |
779 | 779 | } |
780 | - if ( isset( $query_parameters[ 'order' ] ) ) { |
|
781 | - $model_query_params[ 'order' ] = $query_parameters[ 'order' ]; |
|
780 | + if (isset($query_parameters['order'])) { |
|
781 | + $model_query_params['order'] = $query_parameters['order']; |
|
782 | 782 | } |
783 | - if ( isset( $query_parameters[ 'mine' ] ) ){ |
|
784 | - $model_query_params = $model->alter_query_params_to_only_include_mine( $model_query_params ); |
|
783 | + if (isset($query_parameters['mine'])) { |
|
784 | + $model_query_params = $model->alter_query_params_to_only_include_mine($model_query_params); |
|
785 | 785 | } |
786 | - if( isset( $query_parameters[ 'limit' ] ) ) { |
|
786 | + if (isset($query_parameters['limit'])) { |
|
787 | 787 | //limit should be either a string like '23' or '23,43', or an array with two items in it |
788 | - if( ! is_array( $query_parameters[ 'limit' ] ) ) { |
|
789 | - $limit_array = explode(',', (string)$query_parameters['limit']); |
|
790 | - }else { |
|
791 | - $limit_array = $query_parameters[ 'limit' ]; |
|
788 | + if ( ! is_array($query_parameters['limit'])) { |
|
789 | + $limit_array = explode(',', (string) $query_parameters['limit']); |
|
790 | + } else { |
|
791 | + $limit_array = $query_parameters['limit']; |
|
792 | 792 | } |
793 | 793 | $sanitized_limit = array(); |
794 | - foreach( $limit_array as $key => $limit_part ) { |
|
795 | - if( $this->_debug_mode && ( ! is_numeric( $limit_part ) || count( $sanitized_limit ) > 2 ) ) { |
|
794 | + foreach ($limit_array as $key => $limit_part) { |
|
795 | + if ($this->_debug_mode && ( ! is_numeric($limit_part) || count($sanitized_limit) > 2)) { |
|
796 | 796 | throw new \EE_Error( |
797 | 797 | sprintf( |
798 | - __( 'An invalid limit filter was provided. It was: %s. If the EE4 JSON REST API weren\'t in debug mode, this message would not appear.', 'event_espresso' ), |
|
799 | - json_encode( $query_parameters[ 'limit' ] ) |
|
798 | + __('An invalid limit filter was provided. It was: %s. If the EE4 JSON REST API weren\'t in debug mode, this message would not appear.', 'event_espresso'), |
|
799 | + json_encode($query_parameters['limit']) |
|
800 | 800 | ) |
801 | 801 | ); |
802 | 802 | } |
803 | - $sanitized_limit[] = (int)$limit_part; |
|
803 | + $sanitized_limit[] = (int) $limit_part; |
|
804 | 804 | } |
805 | - $model_query_params[ 'limit' ] = implode( ',', $sanitized_limit ); |
|
806 | - }else{ |
|
807 | - $model_query_params[ 'limit' ] = \EED_Core_Rest_Api::get_default_query_limit(); |
|
805 | + $model_query_params['limit'] = implode(',', $sanitized_limit); |
|
806 | + } else { |
|
807 | + $model_query_params['limit'] = \EED_Core_Rest_Api::get_default_query_limit(); |
|
808 | 808 | } |
809 | - if( isset( $query_parameters[ 'caps' ] ) ) { |
|
810 | - $model_query_params[ 'caps' ] = $this->validate_context( $query_parameters[ 'caps' ] ); |
|
811 | - }else{ |
|
812 | - $model_query_params[ 'caps' ] = \EEM_Base::caps_read; |
|
809 | + if (isset($query_parameters['caps'])) { |
|
810 | + $model_query_params['caps'] = $this->validate_context($query_parameters['caps']); |
|
811 | + } else { |
|
812 | + $model_query_params['caps'] = \EEM_Base::caps_read; |
|
813 | 813 | } |
814 | - return apply_filters( 'FHEE__Read__create_model_query_params', $model_query_params, $query_parameters, $model ); |
|
814 | + return apply_filters('FHEE__Read__create_model_query_params', $model_query_params, $query_parameters, $model); |
|
815 | 815 | } |
816 | 816 | |
817 | 817 | |
@@ -823,13 +823,13 @@ discard block |
||
823 | 823 | * @param array $query_params sub-array from @see EEM_Base::get_all() |
824 | 824 | * @return array |
825 | 825 | */ |
826 | - public function prepare_rest_query_params_key_for_models( $model, $query_params ) { |
|
826 | + public function prepare_rest_query_params_key_for_models($model, $query_params) { |
|
827 | 827 | $model_ready_query_params = array(); |
828 | - foreach( $query_params as $key => $value ) { |
|
829 | - if( is_array( $value ) ) { |
|
830 | - $model_ready_query_params[ $key ] = $this->prepare_rest_query_params_key_for_models( $model, $value ); |
|
831 | - }else{ |
|
832 | - $model_ready_query_params[ $key ] = $value; |
|
828 | + foreach ($query_params as $key => $value) { |
|
829 | + if (is_array($value)) { |
|
830 | + $model_ready_query_params[$key] = $this->prepare_rest_query_params_key_for_models($model, $value); |
|
831 | + } else { |
|
832 | + $model_ready_query_params[$key] = $value; |
|
833 | 833 | } |
834 | 834 | } |
835 | 835 | return $model_ready_query_params; |
@@ -843,13 +843,13 @@ discard block |
||
843 | 843 | * @param $query_params |
844 | 844 | * @return array |
845 | 845 | */ |
846 | - public function prepare_rest_query_params_values_for_models( $model, $query_params ) { |
|
846 | + public function prepare_rest_query_params_values_for_models($model, $query_params) { |
|
847 | 847 | $model_ready_query_params = array(); |
848 | - foreach( $query_params as $key => $value ) { |
|
849 | - if( is_array( $value ) ) { |
|
850 | - $model_ready_query_params[ $key ] = $this->prepare_rest_query_params_values_for_models( $model, $value ); |
|
848 | + foreach ($query_params as $key => $value) { |
|
849 | + if (is_array($value)) { |
|
850 | + $model_ready_query_params[$key] = $this->prepare_rest_query_params_values_for_models($model, $value); |
|
851 | 851 | } else { |
852 | - $model_ready_query_params[ $key ] = $value; |
|
852 | + $model_ready_query_params[$key] = $value; |
|
853 | 853 | } |
854 | 854 | } |
855 | 855 | return $model_ready_query_params; |
@@ -864,33 +864,33 @@ discard block |
||
864 | 864 | * we only return strings starting with that and a period; if no prefix was specified |
865 | 865 | * we return all items containing NO periods |
866 | 866 | */ |
867 | - public function explode_and_get_items_prefixed_with( $string_to_explode, $prefix ) { |
|
868 | - if( is_string( $string_to_explode ) ) { |
|
869 | - $exploded_contents = explode( ',', $string_to_explode ); |
|
870 | - } else if( is_array( $string_to_explode ) ) { |
|
867 | + public function explode_and_get_items_prefixed_with($string_to_explode, $prefix) { |
|
868 | + if (is_string($string_to_explode)) { |
|
869 | + $exploded_contents = explode(',', $string_to_explode); |
|
870 | + } else if (is_array($string_to_explode)) { |
|
871 | 871 | $exploded_contents = $string_to_explode; |
872 | 872 | } else { |
873 | 873 | $exploded_contents = array(); |
874 | 874 | } |
875 | 875 | //if the string was empty, we want an empty array |
876 | - $exploded_contents = array_filter( $exploded_contents ); |
|
876 | + $exploded_contents = array_filter($exploded_contents); |
|
877 | 877 | $contents_with_prefix = array(); |
878 | - foreach( $exploded_contents as $item ) { |
|
879 | - $item = trim( $item ); |
|
878 | + foreach ($exploded_contents as $item) { |
|
879 | + $item = trim($item); |
|
880 | 880 | //if no prefix was provided, so we look for items with no "." in them |
881 | - if( ! $prefix ) { |
|
881 | + if ( ! $prefix) { |
|
882 | 882 | //does this item have a period? |
883 | - if( strpos( $item, '.' ) === false ) { |
|
883 | + if (strpos($item, '.') === false) { |
|
884 | 884 | //if not, then its what we're looking for |
885 | 885 | $contents_with_prefix[] = $item; |
886 | 886 | } |
887 | - } else if( strpos( $item, $prefix . '.' ) === 0 ) { |
|
887 | + } else if (strpos($item, $prefix.'.') === 0) { |
|
888 | 888 | //this item has the prefix and a period, grab it |
889 | 889 | $contents_with_prefix[] = substr( |
890 | 890 | $item, |
891 | - strpos( $item, $prefix . '.' ) + strlen( $prefix . '.' ) |
|
891 | + strpos($item, $prefix.'.') + strlen($prefix.'.') |
|
892 | 892 | ); |
893 | - } else if( $item === $prefix ) { |
|
893 | + } else if ($item === $prefix) { |
|
894 | 894 | //this item is JUST the prefix |
895 | 895 | //so let's grab everything after, which is a blank string |
896 | 896 | $contents_with_prefix[] = ''; |
@@ -913,33 +913,33 @@ discard block |
||
913 | 913 | * the fields for that model, with the model's name removed from each. |
914 | 914 | * If $include_string was blank or '*' returns an empty array |
915 | 915 | */ |
916 | - public function extract_includes_for_this_model( $include_string, $model_name = null ) { |
|
917 | - if( is_array( $include_string ) ) { |
|
918 | - $include_string = implode( ',', $include_string ); |
|
916 | + public function extract_includes_for_this_model($include_string, $model_name = null) { |
|
917 | + if (is_array($include_string)) { |
|
918 | + $include_string = implode(',', $include_string); |
|
919 | 919 | } |
920 | - if( $include_string === '*' || $include_string === '' ) { |
|
920 | + if ($include_string === '*' || $include_string === '') { |
|
921 | 921 | return array(); |
922 | 922 | } |
923 | - $includes = explode( ',', $include_string ); |
|
923 | + $includes = explode(',', $include_string); |
|
924 | 924 | $extracted_fields_to_include = array(); |
925 | - if( $model_name ){ |
|
926 | - foreach( $includes as $field_to_include ) { |
|
927 | - $field_to_include = trim( $field_to_include ); |
|
928 | - if( strpos( $field_to_include, $model_name . '.' ) === 0 ) { |
|
925 | + if ($model_name) { |
|
926 | + foreach ($includes as $field_to_include) { |
|
927 | + $field_to_include = trim($field_to_include); |
|
928 | + if (strpos($field_to_include, $model_name.'.') === 0) { |
|
929 | 929 | //found the model name at the exact start |
930 | - $field_sans_model_name = str_replace( $model_name . '.', '', $field_to_include ); |
|
930 | + $field_sans_model_name = str_replace($model_name.'.', '', $field_to_include); |
|
931 | 931 | $extracted_fields_to_include[] = $field_sans_model_name; |
932 | - }elseif( $field_to_include == $model_name ){ |
|
932 | + }elseif ($field_to_include == $model_name) { |
|
933 | 933 | $extracted_fields_to_include[] = '*'; |
934 | 934 | } |
935 | 935 | } |
936 | - }else{ |
|
936 | + } else { |
|
937 | 937 | //look for ones with no period |
938 | - foreach( $includes as $field_to_include ) { |
|
939 | - $field_to_include = trim( $field_to_include ); |
|
938 | + foreach ($includes as $field_to_include) { |
|
939 | + $field_to_include = trim($field_to_include); |
|
940 | 940 | if ( |
941 | - strpos( $field_to_include, '.' ) === false |
|
942 | - && ! $this->get_model_version_info()->is_model_name_in_this_version( $field_to_include ) |
|
941 | + strpos($field_to_include, '.') === false |
|
942 | + && ! $this->get_model_version_info()->is_model_name_in_this_version($field_to_include) |
|
943 | 943 | ) { |
944 | 944 | $extracted_fields_to_include[] = $field_to_include; |
945 | 945 | } |