Completed
Push — renovate/history-4.x ( 8706da...6c1ea7 )
by
unknown
17:57 queued 11:18
created

class.wpcom-json-api-update-customcss.php (1 issue)

Severity

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/**
3
 * Custom Css update endpoint
4
 *
5
 * https://public-api.wordpress.com/rest/v1.1/sites/$site/customcss/
6
 */
7
8
new WPCOM_JSON_API_Update_CustomCss_Endpoint( array (
9
	'description'      => 'Set custom-css data for a site.',
10
	'group'            => '__do_not_document',
11
	'stat'             => 'customcss:1:update',
12
	'method'           => 'POST',
13
	'min_version'      => '1.1',
14
	'path'             => '/sites/%s/customcss',
15
	'path_labels'      => array(
16
		'$site' => '(string) Site ID or domain.',
17
	),
18
	'request_format'  => array(
19
		'css' => '(string) Optional. The raw CSS.',
20
		'preprocessor' => '(string) Optional. The name of the preprocessor if any.',
21
		'add_to_existing' => '(bool) Optional. False to skip the existing styles.',
22
	),
23
	'response_format'  => array(
24
		'css' => '(string) The raw CSS.',
25
		'preprocessor' => '(string) The name of the preprocessor if any.',
26
		'add_to_existing' => '(bool) False to skip the existing styles.',
27
	),
28
	'example_request'  => 'https://public-api.wordpress.com/rest/v1.1/sites/12345678/customcss',
29
	'example_request_data' => array(
30
		'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ),
31
		'body' => array(
32
			'css' => '.stie-title { color: #fff; }',
33
			'preprocessor' => 'sass'
34
		),
35
	),
36
	'example_response' => '
37
	{
38
		"css": ".site-title { color: #fff; }",
39
		"preprocessor": "sass",
40
		"add_to_existing": "true"
41
	}'
42
) );
43
44
class WPCOM_JSON_API_Update_CustomCss_Endpoint extends WPCOM_JSON_API_Endpoint {
45
	/**
46
	 * API callback.
47
	 */
48
	function callback( $path = '', $blog_id = 0 ) {
49
		// Switch to the given blog.
50
		$blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) );
51
		if ( is_wp_error( $blog_id ) ) {
52
			return $blog_id;
53
		}
54
55
		if ( ! current_user_can( 'edit_theme_options' ) ) {
56
			return new WP_Error( 'unauthorized', 'User is not authorized to access custom css', 403 );
57
		}
58
59
		$args = $this->input();
60
		if ( empty( $args ) || ! is_array( $args ) ) {
61
			return new WP_Error( 'no_data', 'No data was provided.', 400 );
62
		}
63
		$save_args = array(
64
			'css' => $args['css'],
65
			'preprocessor' => $args['preprocessor'],
66
			'add_to_existing' => $args['add_to_existing'],
67
		);
68
		Jetpack_Custom_CSS::save( $save_args );
69
70
		$current = array(
71
			'css' => Jetpack_Custom_CSS::get_css(),
72
			'preprocessor' => Jetpack_Custom_CSS::get_preprocessor_key(),
73
			'add_to_existing' => ! Jetpack_Custom_CSS::skip_stylesheet(),
74
		);
75
76
		$defaults = array(
77
			'css' => '',
78
			'preprocessor' => '',
79
			'add_to_existing' => true,
80
		);
81
		return wp_parse_args( $current, $defaults );
0 ignored issues
show
$defaults is of type array<string,string|bool...o_existing":"boolean"}>, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
82
	}
83
}
84
85
86
87