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

WPCOM_JSON_API_Update_Option_Endpoint   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1
Metric Value
wmc 6
lcom 1
cbo 1
dl 0
loc 29
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A result() 0 8 2
A validate_input() 0 16 4
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