Completed
Push — update/media-extractor-summary... ( 317788...ea9570 )
by Jeremy
34:42 queued 06:44
created

WPCOM_JSON_API_Update_Option_Endpoint::result()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %
Metric Value
dl 0
loc 8
rs 9.4285
cc 2
eloc 6
nc 2
nop 0
1
<?php
2
3
class WPCOM_JSON_API_Update_Option_Endpoint extends WPCOM_JSON_API_Get_Option_Endpoint {
4
	public $option_value;
5
6
	function result() {
7
		if ( $this->site_option ) {
8
			update_site_option( $this->option_name, $this->option_value );
9
		} else {
10
			update_option( $this->option_name, $this->option_value );
11
		}
12
		return parent::result();
13
	}
14
15
	function validate_input( $object ) {
16
		$input = $this->input();
17
		$query_args = $this->query_args();
18
		if ( ! isset( $input['option_value'] ) || is_array( $input['option_value'] ) ) {
19
			return new WP_Error( 'option_value_not_set', __( 'You must specify an option_value', 'jetpack' ) );
20
		}
21
		if ( $query_args['is_array'] ) {
22
			// When converted back from JSON, the value is an object.
23
			// Cast it to an array for options that expect arrays.
24
			$this->option_value = (array) $input['option_value'];
25
		} else {
26
			$this->option_value = $input['option_value'];
27
		}
28
29
		return parent::validate_input( $object );
30
	}
31
}
32