2018-08-21 13:17:07 +00:00
|
|
|
<?php
|
2018-08-21 21:52:56 +00:00
|
|
|
namespace api;
|
|
|
|
|
|
|
|
require_once plugin_dir_path( __FILE__ ) . '/actors.php';
|
2018-08-23 02:39:59 +00:00
|
|
|
require_once plugin_dir_path( __FILE__ ) . '/outbox.php';
|
2018-08-28 23:26:18 +00:00
|
|
|
require_once plugin_dir_path( __FILE__ ) . '/objects.php';
|
2018-08-29 20:43:15 +00:00
|
|
|
require_once plugin_dir_path( __FILE__ ) . '/activities.php';
|
2018-09-22 13:25:35 +00:00
|
|
|
require_once plugin_dir_path( __FILE__ ) . '/following.php';
|
2018-09-24 12:39:54 +00:00
|
|
|
require_once plugin_dir_path( __FILE__ ) . '/likes.php';
|
|
|
|
require_once plugin_dir_path( __FILE__ ) . '/shares.php';
|
2018-08-21 13:17:07 +00:00
|
|
|
|
2018-08-29 20:43:15 +00:00
|
|
|
function get_actor( $request ) {
|
2018-08-29 20:47:56 +00:00
|
|
|
$actor = $request['actor'];
|
2018-09-04 01:33:14 +00:00
|
|
|
return \actors\get_actor_by_slug( $actor );
|
2018-08-21 13:17:07 +00:00
|
|
|
}
|
|
|
|
|
2018-09-19 02:55:47 +00:00
|
|
|
function post_to_outbox( $request ) {
|
|
|
|
$actor_slug = $request['actor'];
|
2018-08-29 21:04:24 +00:00
|
|
|
$activity = json_decode( $request->get_body(), true );
|
2018-09-19 02:55:47 +00:00
|
|
|
return \outbox\handle_activity( $actor_slug, $activity );
|
|
|
|
}
|
|
|
|
|
|
|
|
function get_outbox( $request ) {
|
|
|
|
$actor_slug = $request['actor'];
|
|
|
|
return \outbox\get_outbox( $actor_slug );
|
2018-08-23 02:39:59 +00:00
|
|
|
}
|
|
|
|
|
2018-08-28 23:26:18 +00:00
|
|
|
function get_object( $request ) {
|
|
|
|
$id = $request['id'];
|
|
|
|
return \objects\get_object( $id );
|
|
|
|
}
|
|
|
|
|
2018-08-29 20:43:15 +00:00
|
|
|
function get_activity( $request ) {
|
|
|
|
$id = $request['id'];
|
|
|
|
return \activities\get_activity( $id );
|
|
|
|
}
|
|
|
|
|
2018-09-22 13:25:35 +00:00
|
|
|
function get_following( $request ) {
|
|
|
|
$actor_slug = $request['actor'];
|
|
|
|
return \following\get_following_collection( $actor_slug );
|
|
|
|
}
|
|
|
|
|
2018-09-24 12:51:50 +00:00
|
|
|
function get_followers( $request ) {
|
|
|
|
$actor_slug = $request['actor'];
|
|
|
|
return \followers\get_followers_collection( $actor_slug );
|
|
|
|
}
|
|
|
|
|
2018-09-24 12:39:54 +00:00
|
|
|
function get_likes( $request ) {
|
|
|
|
$object_id = $request['object'];
|
|
|
|
return \likes\get_likes_collection( $object_id );
|
|
|
|
}
|
|
|
|
|
|
|
|
function get_shares( $request ) {
|
|
|
|
$object_id = $request['object'];
|
|
|
|
return \shares\get_shares_collection( $object_id );
|
|
|
|
}
|
|
|
|
|
2018-08-21 21:52:56 +00:00
|
|
|
function register_routes() {
|
2018-09-19 15:16:41 +00:00
|
|
|
register_rest_route( 'pterotype/v1', '/actor/(?P<actor>[a-zA-Z0-9-]+)/outbox', array(
|
2018-08-29 21:18:45 +00:00
|
|
|
'methods' => 'POST',
|
2018-09-19 02:55:47 +00:00
|
|
|
'callback' => __NAMESPACE__ . '\post_to_outbox',
|
|
|
|
) );
|
2018-09-19 15:16:41 +00:00
|
|
|
register_rest_route( 'pterotype/v1', '/actor/(?P<actor>[a-zA-Z0-9-]+/outbox', array(
|
2018-09-19 02:55:47 +00:00
|
|
|
'methods' => 'POST',
|
|
|
|
'callback' => __NAMESPACE__ . '\get_outbox',
|
2018-08-29 21:18:45 +00:00
|
|
|
) );
|
2018-09-19 15:16:41 +00:00
|
|
|
register_rest_route( 'pterotype/v1', '/actor/(?P<actor>[a-zA-Z0-9-]+)', array(
|
2018-08-21 13:17:07 +00:00
|
|
|
'methods' => 'GET',
|
2018-08-29 20:43:15 +00:00
|
|
|
'callback' => __NAMESPACE__ . '\get_actor',
|
2018-08-21 13:17:07 +00:00
|
|
|
) );
|
2018-09-19 15:16:41 +00:00
|
|
|
register_rest_route( 'pterotype/v1', '/object/(?P<id>[0-9]+)', array(
|
2018-08-28 23:26:18 +00:00
|
|
|
'methods' => 'GET',
|
|
|
|
'callback' => __NAMESPACE__ . '\get_object',
|
|
|
|
) );
|
2018-09-19 15:16:41 +00:00
|
|
|
register_rest_route( 'pterotype/v1', '/activity/(?P<id>[0-9]+)', array(
|
2018-08-29 20:43:15 +00:00
|
|
|
'methods' => 'GET',
|
|
|
|
'callback' => __NAMESPACE__ . '\get_activity',
|
|
|
|
) );
|
2018-09-24 12:39:54 +00:00
|
|
|
register_rest_route( 'pterotype/v1', '/actor/(?P<actor>[a-zA-Z0-9-]+)/following', array(
|
2018-09-22 13:25:35 +00:00
|
|
|
'methods' => 'GET',
|
|
|
|
'callback' => __NAMESPACE__ . '\get_following',
|
|
|
|
) );
|
2018-09-24 12:51:50 +00:00
|
|
|
register_rest_route( 'pterotype/v1', '/actor/(?P<actor>[a-zA-Z0-9-]+)/followers', array(
|
|
|
|
'methods' => 'GET',
|
|
|
|
'callback' => __NAMESPACE__ . '\get_followers',
|
|
|
|
) );
|
2018-09-24 12:39:54 +00:00
|
|
|
register_rest_route( 'pterotype/v1', '/object/(?P<object>[0-9]+)/likes', array(
|
|
|
|
'methods' => 'GET',
|
|
|
|
'callback' => __NAMESPACE__ . '\get_likes',
|
|
|
|
) );
|
|
|
|
register_rest_route( 'pterotype/v1', '/object/(?P<object>[0-9]+)/shares', array(
|
|
|
|
'methods' => 'GET',
|
|
|
|
'callback' => __NAMESPACE__ . '\get_shares',
|
|
|
|
) );
|
2018-08-21 21:52:56 +00:00
|
|
|
}
|
2018-08-21 13:17:07 +00:00
|
|
|
?>
|