function __construct($args)
{
$defaults = array('in_testing' => false, 'allowed_if_flagged' => false, 'allowed_if_red_flagged' => false, 'description' => '', 'group' => '', 'method' => 'GET', 'path' => '/', 'min_version' => '0', 'max_version' => WPCOM_JSON_API__CURRENT_VERSION, 'force' => '', 'deprecated' => false, 'new_version' => WPCOM_JSON_API__CURRENT_VERSION, 'jp_disabled' => false, 'path_labels' => array(), 'request_format' => array(), 'response_format' => array(), 'query_parameters' => array(), 'version' => 'v1', 'example_request' => '', 'example_request_data' => '', 'example_response' => '', 'required_scope' => '', 'pass_wpcom_user_details' => false, 'custom_fields_filtering' => false, 'allow_cross_origin_request' => false, 'allow_unauthorized_request' => false, 'allow_jetpack_site_auth' => false);
$args = wp_parse_args($args, $defaults);
$this->in_testing = $args['in_testing'];
$this->allowed_if_flagged = $args['allowed_if_flagged'];
$this->allowed_if_red_flagged = $args['allowed_if_red_flagged'];
$this->description = $args['description'];
$this->group = $args['group'];
$this->stat = $args['stat'];
$this->force = $args['force'];
$this->jp_disabled = $args['jp_disabled'];
$this->method = $args['method'];
$this->path = $args['path'];
$this->path_labels = $args['path_labels'];
$this->min_version = $args['min_version'];
$this->max_version = $args['max_version'];
$this->deprecated = $args['deprecated'];
$this->new_version = $args['new_version'];
$this->pass_wpcom_user_details = $args['pass_wpcom_user_details'];
$this->custom_fields_filtering = (bool) $args['custom_fields_filtering'];
$this->allow_cross_origin_request = (bool) $args['allow_cross_origin_request'];
$this->allow_unauthorized_request = (bool) $args['allow_unauthorized_request'];
$this->allow_jetpack_site_auth = (bool) $args['allow_jetpack_site_auth'];
$this->version = $args['version'];
$this->required_scope = $args['required_scope'];
if ($this->request_format) {
$this->request_format = array_filter(array_merge($this->request_format, $args['request_format']));
} else {
$this->request_format = $args['request_format'];
}
if ($this->response_format) {
$this->response_format = array_filter(array_merge($this->response_format, $args['response_format']));
} else {
$this->response_format = $args['response_format'];
}
if (false === $args['query_parameters']) {
$this->query = array();
} elseif (is_array($args['query_parameters'])) {
$this->query = array_filter(array_merge($this->query, $args['query_parameters']));
}
$this->api = WPCOM_JSON_API::init();
// Auto-add to WPCOM_JSON_API
$this->links = WPCOM_JSON_API_Links::getInstance();
/** Example Request/Response ******************************************/
// Examples for endpoint documentation request
$this->example_request = $args['example_request'];
$this->example_request_data = $args['example_request_data'];
$this->example_response = $args['example_response'];
$this->api->add($this);
}