Created
July 3, 2020 14:39
-
-
Save domosedov/d08ca0d8f54c83251014a2e800636bba to your computer and use it in GitHub Desktop.
Template for wordpress rest api controller
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Your\Namespace; | |
use WP_REST_Server; | |
class Todos extends \WP_REST_Controller | |
{ | |
public function __construct() | |
{ | |
$this->namespace = ''; | |
$this->rest_base = ''; | |
} | |
public function register_routes() | |
{ | |
register_rest_route($this->namespace, "/$this->rest_base", [ | |
[ | |
'methods' => WP_REST_Server::READABLE, | |
'callback' => [$this, 'get_items'], | |
'permission_callback' => [$this, 'get_items_permissions_check'], | |
'args' => [ | |
'type' => [ | |
'description' => '', | |
'type' => 'string', | |
'default' => '', | |
'validate_callback' => [$this, 'validate_args'], | |
'required' => true | |
], | |
'page' => [ | |
'description' => '', | |
'type' => 'integer', | |
'default' => 1, | |
'validate_callback' => [$this, 'validate_args'], | |
'required' => false | |
], | |
'per_page' => [ | |
'description' => '', | |
'type' => 'integer', | |
'default' => 0, | |
'validate_callback' => [$this, 'validate_args'], | |
'required' => false | |
], | |
] | |
], | |
[ | |
'methods' => WP_REST_Server::CREATABLE, | |
'callback' => [$this, 'create_item'], | |
'permission_callback' => [$this, 'create_item_permissions_check'], | |
'args' => [ | |
'receiver_id' => [ | |
'description' => '', | |
'type' => 'integer', | |
'sanitize_callback' => [$this, 'sanitize_args'], | |
'validate_callback' => [$this, 'validate_args'], | |
'required' => true | |
], | |
'title' => [ | |
'description' => '', | |
'type' => 'string', | |
'default' => '', | |
'sanitize_callback' => [$this, 'sanitize_args'], | |
'validate_callback' => [$this, 'validate_args'], | |
'required' => true | |
], | |
'body' => [ | |
'description' => '', | |
'type' => 'string', | |
'default' => '', | |
'sanitize_callback' => [$this, 'sanitize_args'], | |
'validate_callback' => [$this, 'validate_args'], | |
'required' => true | |
] | |
] | |
] | |
]); | |
register_rest_route($this->namespace, "/$this->rest_base/(?P<id>[\w]+)", [ | |
'args' => [ | |
'id' => [ | |
'description' => '', | |
'type' => 'integer', | |
'validate_callback' => [$this, 'validate_args'] | |
], | |
'action' => [ | |
'description' => '', | |
'type' => 'string', | |
'validate_callback' => [$this, 'validate_args'], | |
'sanitize_callback' => [$this, 'sanitize_args'], | |
'required' => false | |
] | |
], | |
[ | |
'methods' => WP_REST_Server::READABLE, | |
'callback' => [$this, 'get_item'], | |
'permission_callback' => [$this, 'get_item_permissions_check'], | |
], | |
[ | |
'methods' => WP_REST_Server::EDITABLE, | |
'callback' => [$this, 'update_item'], | |
'permission_callback' => [$this, 'update_item_permissions_check'], | |
], | |
[ | |
'methods' => WP_REST_Server::DELETABLE, | |
'callback' => [$this, 'delete_item'], | |
'permission_callback' => [$this, 'delete_item_permissions_check'], | |
] | |
]); | |
} | |
public function sanitize_args($value, $requset, $param) | |
{ | |
} | |
public function validate_args($value, $requset, $param) | |
{ | |
} | |
public function get_items_permissions_check($request) | |
{ | |
return parent::get_items_permissions_check($request); // TODO: Change the autogenerated stub | |
} | |
public function get_items($request) | |
{ | |
return parent::get_items($request); // TODO: Change the autogenerated stub | |
} | |
public function get_item_permissions_check($request) | |
{ | |
return parent::get_item_permissions_check($request); // TODO: Change the autogenerated stub | |
} | |
public function get_item($request) | |
{ | |
return parent::get_item($request); // TODO: Change the autogenerated stub | |
} | |
public function create_item_permissions_check($request) | |
{ | |
return parent::create_item_permissions_check($request); // TODO: Change the autogenerated stub | |
} | |
public function create_item($request) | |
{ | |
return parent::create_item($request); // TODO: Change the autogenerated stub | |
} | |
public function update_item_permissions_check($request) | |
{ | |
return parent::update_item_permissions_check($request); // TODO: Change the autogenerated stub | |
} | |
public function update_item($request) | |
{ | |
return parent::update_item($request); // TODO: Change the autogenerated stub | |
} | |
public function delete_item_permissions_check($request) | |
{ | |
return parent::delete_item_permissions_check($request); // TODO: Change the autogenerated stub | |
} | |
public function delete_item($request) | |
{ | |
return parent::delete_item($request); // TODO: Change the autogenerated stub | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment