From a692db85cb97d34bc59dbd216421faff193fb9e5 Mon Sep 17 00:00:00 2001 From: Mateus Machado Luna Date: Fri, 4 Oct 2019 16:04:55 -0300 Subject: [PATCH] Adds partial scheme to taxonomies repository. #290. --- ...lass-tainacan-rest-metadata-controller.php | 1 - ...ss-tainacan-rest-taxonomies-controller.php | 29 +++++++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/api/endpoints/class-tainacan-rest-metadata-controller.php b/src/api/endpoints/class-tainacan-rest-metadata-controller.php index 7d6cd7f21..d2bc9e0a5 100644 --- a/src/api/endpoints/class-tainacan-rest-metadata-controller.php +++ b/src/api/endpoints/class-tainacan-rest-metadata-controller.php @@ -612,7 +612,6 @@ class REST_Metadata_Controller extends REST_Controller { ); return $schema; - } } diff --git a/src/api/endpoints/class-tainacan-rest-taxonomies-controller.php b/src/api/endpoints/class-tainacan-rest-taxonomies-controller.php index b12856b00..a1f71856e 100644 --- a/src/api/endpoints/class-tainacan-rest-taxonomies-controller.php +++ b/src/api/endpoints/class-tainacan-rest-taxonomies-controller.php @@ -43,7 +43,8 @@ class REST_Taxonomies_Controller extends REST_Controller { 'callback' => array($this, 'create_item'), 'permission_callback' => array($this, 'create_item_permissions_check'), 'args' => $this->get_endpoint_args_for_item_schema(\WP_REST_Server::CREATABLE) - ) + ), + 'schema' => [$this, 'get_schema'] ) ); register_rest_route( @@ -71,7 +72,8 @@ class REST_Taxonomies_Controller extends REST_Controller { 'callback' => array($this, 'update_item'), 'permission_callback' => array($this, 'update_item_permissions_check'), 'args' => $this->get_endpoint_args_for_item_schema(\WP_REST_Server::EDITABLE) - ) + ), + 'schema' => [$this, 'get_schema'] ) ); register_rest_route( @@ -82,7 +84,8 @@ class REST_Taxonomies_Controller extends REST_Controller { 'callback' => array($this, 'update_item'), 'permission_callback' => array($this, 'update_item_permissions_check'), 'args' => $this->get_endpoint_args_for_item_schema(\WP_REST_Server::EDITABLE) - ) + ), + 'schema' => [$this, 'get_schema'] ) ); } @@ -499,6 +502,26 @@ class REST_Taxonomies_Controller extends REST_Controller { return $query_params; } + + function get_schema() { + $schema = [ + '$schema' => 'http://json-schema.org/draft-04/schema#', + 'title' => 'taxonomy', + 'type' => 'object' + ]; + + $main_schema = parent::get_repository_schema( $this->taxonomy_repository ); + $permissions_schema = parent::get_permissions_schema(); + + $schema['properties'] = array_merge( + parent::get_base_properties_schema(), + $main_schema, + $permissions_schema + ); + + return $schema; + + } } ?> \ No newline at end of file