Automatically set the wp_post when returning a transformer instance for the wp_post
This commit is contained in:
parent
3ae71bb18c
commit
6d40ebf30e
8 changed files with 19 additions and 14 deletions
|
@ -66,8 +66,7 @@ class Activity_Dispatcher {
|
||||||
}
|
}
|
||||||
|
|
||||||
$transformer = \Activitypub\Transformers_Manager::instance()->get_transformer( $wp_post );
|
$transformer = \Activitypub\Transformers_Manager::instance()->get_transformer( $wp_post );
|
||||||
$transformer->set_wp_post( $wp_post );
|
$object = $transformer->to_object();
|
||||||
$transformer->to_object();
|
|
||||||
|
|
||||||
$activity = new Activity();
|
$activity = new Activity();
|
||||||
$activity->set_type( $type );
|
$activity->set_type( $type );
|
||||||
|
@ -104,8 +103,7 @@ class Activity_Dispatcher {
|
||||||
}
|
}
|
||||||
|
|
||||||
$transformer = \Activitypub\Transformers_Manager::instance()->get_transformer( $wp_post );
|
$transformer = \Activitypub\Transformers_Manager::instance()->get_transformer( $wp_post );
|
||||||
$transformer->set_wp_post( $wp_post );
|
$object = $transformer->to_object();
|
||||||
$transformer->to_object();
|
|
||||||
|
|
||||||
$activity = new Activity();
|
$activity = new Activity();
|
||||||
$activity->set_type( 'Announce' );
|
$activity->set_type( 'Announce' );
|
||||||
|
|
|
@ -27,6 +27,11 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class Transformers_Manager {
|
class Transformers_Manager {
|
||||||
|
const DEFAULT_TRANSFORMER_MAPPING = array(
|
||||||
|
'post' => 'activitypub/default',
|
||||||
|
'page' => 'activitypub/default'
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transformers.
|
* Transformers.
|
||||||
*
|
*
|
||||||
|
@ -260,6 +265,8 @@ class Transformers_Manager {
|
||||||
/**
|
/**
|
||||||
* Get the mapped ActivityPub transformer.
|
* Get the mapped ActivityPub transformer.
|
||||||
*
|
*
|
||||||
|
* Returns a new instance of the needed WordPress to ActivityPub transformer.
|
||||||
|
*
|
||||||
* @since version_number_transformer_management_placeholder
|
* @since version_number_transformer_management_placeholder
|
||||||
* @access public
|
* @access public
|
||||||
*
|
*
|
||||||
|
@ -271,9 +278,11 @@ class Transformers_Manager {
|
||||||
switch ( get_class( $object ) ) {
|
switch ( get_class( $object ) ) {
|
||||||
case 'WP_Post':
|
case 'WP_Post':
|
||||||
$post_type = get_post_type( $object );
|
$post_type = get_post_type( $object );
|
||||||
$transformer_mapping = \get_option( 'activitypub_transformer_mapping', array( 'post' => 'activitypub/default', 'page' => 'activitypub/default' ) ) ? \get_option( 'activitypub_transformer_mapping', array( 'post' => 'activitypub/default', 'page' => 'activitypub/default' ) ) : array();
|
$transformer_mapping = \get_option( 'activitypub_transformer_mapping', DEFAULT_TRANSFORMER_MAPPING );
|
||||||
$transformer_name = $transformer_mapping[ $post_type ];
|
$transformer_name = $transformer_mapping[ $post_type ];
|
||||||
return new ( $this->get_transformers( $transformer_name ) );
|
$transformer_instance = new ( $this->get_transformers( $transformer_name ) );
|
||||||
|
$transformer_instance->set_wp_post( $object );
|
||||||
|
return $transformer_instance;
|
||||||
case 'WP_Comment':
|
case 'WP_Comment':
|
||||||
return new Comment( $object );
|
return new Comment( $object );
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -168,7 +168,7 @@ class Collection {
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ( $posts as $post ) {
|
foreach ( $posts as $post ) {
|
||||||
$response['orderedItems'][] = Transformers_Manager::instance()->get_transformer( $post )->set_wp_post( $wp_post )->to_object()->to_array();
|
$response['orderedItems'][] = Transformers_Manager::instance()->get_transformer( $post )->to_object()->to_array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$rest_response = new WP_REST_Response( $response, 200 );
|
$rest_response = new WP_REST_Response( $response, 200 );
|
||||||
|
|
|
@ -106,7 +106,6 @@ class Outbox {
|
||||||
|
|
||||||
foreach ( $posts as $post ) {
|
foreach ( $posts as $post ) {
|
||||||
$transformer = \Activitypub\Transformers_Manager::instance()->get_transformer( $post );
|
$transformer = \Activitypub\Transformers_Manager::instance()->get_transformer( $post );
|
||||||
$transformer->set_wp_post( $wp_post );
|
|
||||||
$post = $transformer->to_object();
|
$post = $transformer->to_object();
|
||||||
$activity = new Activity();
|
$activity = new Activity();
|
||||||
$activity->set_type( 'Create' );
|
$activity->set_type( 'Create' );
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
$post = \get_post();
|
$post = \get_post();
|
||||||
|
|
||||||
$transformer = \Activitypub\Transformers_Manager::instance()->get_transformer( $post );
|
$transformer = \Activitypub\Transformers_Manager::instance()->get_transformer( $post );
|
||||||
$transformer->set_wp_post( $post );
|
|
||||||
|
|
||||||
$json = \array_merge( array( '@context' => \Activitypub\get_context() ), $transformer->to_object()->to_array() );
|
$json = \array_merge( array( '@context' => \Activitypub\get_context() ), $transformer->to_object()->to_array() );
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Test_Activitypub_Activity extends WP_UnitTestCase {
|
||||||
);
|
);
|
||||||
|
|
||||||
$wp_post = get_post( $post );
|
$wp_post = get_post( $post );
|
||||||
$activitypub_post = \Activitypub\Transformers_Manager::instance()->get_transformer( $post )->set_wp_post( $wp_post )->to_object();
|
$activitypub_post = \Activitypub\Transformers_Manager::instance()->get_transformer( $post )->to_object();
|
||||||
|
|
||||||
$activitypub_activity = new \Activitypub\Activity\Activity();
|
$activitypub_activity = new \Activitypub\Activity\Activity();
|
||||||
$activitypub_activity->set_type( 'Create' );
|
$activitypub_activity->set_type( 'Create' );
|
||||||
|
|
|
@ -10,13 +10,13 @@ class Test_Activitypub_Post extends WP_UnitTestCase {
|
||||||
|
|
||||||
$permalink = \get_permalink( $post );
|
$permalink = \get_permalink( $post );
|
||||||
|
|
||||||
$activitypub_post = \Activitypub\Transformers_Manager::instance()->get_transformer( get_post( $post ) )->set_wp_post( get_post( $post ) )->to_object();
|
$activitypub_post = \Activitypub\Transformers_Manager::instance()->get_transformer( get_post( $post ) )->to_object();
|
||||||
|
|
||||||
$this->assertEquals( $permalink, $activitypub_post->get_id() );
|
$this->assertEquals( $permalink, $activitypub_post->get_id() );
|
||||||
|
|
||||||
\wp_trash_post( $post );
|
\wp_trash_post( $post );
|
||||||
|
|
||||||
$activitypub_post = \Activitypub\Transformers_Manager::instance()->get_transformer( get_post( $post ) )->set_wp_post( get_post( $post ) )->to_object();
|
$activitypub_post = \Activitypub\Transformers_Manager::instance()->get_transformer( get_post( $post ) )->to_object();
|
||||||
|
|
||||||
$this->assertEquals( $permalink, $activitypub_post->get_id() );
|
$this->assertEquals( $permalink, $activitypub_post->get_id() );
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ class Test_Activitypub_Signature_Verification extends WP_UnitTestCase {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$remote_actor = \get_author_posts_url( 2 );
|
$remote_actor = \get_author_posts_url( 2 );
|
||||||
$activitypub_post = \Activitypub\Transformers_Manager::instance()->get_transformer( get_post( $post ) )->set_wp_post( get_post( $post ) )->to_object();
|
$activitypub_post = \Activitypub\Transformers_Manager::instance()->get_transformer( get_post( $post ) )->to_object();
|
||||||
$activitypub_activity = new Activitypub\Activity\Activity( 'Create' );
|
$activitypub_activity = new Activitypub\Activity\Activity( 'Create' );
|
||||||
$activitypub_activity->set_type( 'Create' );
|
$activitypub_activity->set_type( 'Create' );
|
||||||
$activitypub_activity->set_object( $activitypub_post );
|
$activitypub_activity->set_object( $activitypub_post );
|
||||||
|
@ -82,7 +82,7 @@ class Test_Activitypub_Signature_Verification extends WP_UnitTestCase {
|
||||||
);
|
);
|
||||||
$remote_actor = \get_author_posts_url( 2 );
|
$remote_actor = \get_author_posts_url( 2 );
|
||||||
$remote_actor_inbox = Activitypub\get_rest_url_by_path( '/inbox' );
|
$remote_actor_inbox = Activitypub\get_rest_url_by_path( '/inbox' );
|
||||||
$activitypub_post = \Activitypub\Transformers_Manager::instance()->get_transformer( get_post( $post ) )->set_wp_post( get_post( $post ) )->to_object();
|
$activitypub_post = \Activitypub\Transformers_Manager::instance()->get_transformer( get_post( $post ) )->to_object();
|
||||||
$activitypub_activity = new Activitypub\Activity\Activity();
|
$activitypub_activity = new Activitypub\Activity\Activity();
|
||||||
$activitypub_activity->set_type( 'Create' );
|
$activitypub_activity->set_type( 'Create' );
|
||||||
$activitypub_activity->set_object( $activitypub_post );
|
$activitypub_activity->set_object( $activitypub_post );
|
||||||
|
|
Loading…
Reference in a new issue