Skip to content

Commit 2dec281

Browse files
Merge pull request #510 from buddypress/feature/9170-edit-context-message
BP9170: "raw" property missing from subject/excerpt/message nodes
2 parents 0c65053 + 51095ef commit 2dec281

File tree

2 files changed

+59
-4
lines changed

2 files changed

+59
-4
lines changed

includes/bp-messages/classes/class-bp-rest-messages-endpoint.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -868,8 +868,9 @@ public function prepare_message_for_response( $message, $request ) {
868868
$data['is_starred'] = bp_messages_is_message_starred( $data['id'], $user_id );
869869
}
870870

871-
// Add REST Fields (BP Messages meta) data.
872-
$data = $this->add_additional_fields_to_object( $data, $request );
871+
$context = ! empty( $request->get_param( 'context' ) ) ? $request->get_param( 'context' ) : 'view';
872+
$data = $this->add_additional_fields_to_object( $data, $request );
873+
$data = $this->filter_response_by_context( $data, $context );
873874

874875
/**
875876
* Filter a message value returned from the API.

tests/testcases/messages/test-controller.php

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,10 +249,64 @@ public function test_get_item_admin_access() {
249249
$this->assertEquals( 200, $response->get_status() );
250250

251251
$all_data = $response->get_data();
252-
$this->assertNotEmpty( $all_data );
253252

254253
$data = current( $all_data );
255-
$this->check_thread_data( $this->endpoint->get_thread_object( $data['id'], $u2 ), $data );
254+
255+
$this->assertFalse( isset( $data['message']['raw'] ) );
256+
$this->assertFalse( isset( $data['excerpt']['raw'] ) );
257+
$this->assertFalse( isset( $data['subject']['raw'] ) );
258+
$this->assertSame( 'Foo', $data['subject']['rendered'] );
259+
260+
$message = $data['messages'][0];
261+
262+
$this->assertSame( $m->id, $message['id'] );
263+
$this->assertFalse( isset( $message['message']['raw'] ) );
264+
$this->assertFalse( isset( $message['subject']['raw'] ) );
265+
266+
$this->assertTrue( isset( $message['message']['rendered'] ) );
267+
$this->assertTrue( isset( $message['subject']['rendered'] ) );
268+
}
269+
270+
/**
271+
* @group get_item
272+
*/
273+
public function test_get_item_with_edit_context() {
274+
$u1 = static::factory()->user->create();
275+
$u2 = static::factory()->user->create();
276+
$m = $this->bp::factory()->message->create_and_get( array(
277+
'sender_id' => $u1,
278+
'recipients' => array( $u2 ),
279+
'subject' => 'Foo',
280+
) );
281+
282+
$this->bp::set_current_user( $this->user );
283+
284+
$request = new WP_REST_Request( 'GET', $this->endpoint_url . '/' . $m->thread_id );
285+
286+
$request->set_param( 'context', 'edit' );
287+
$request->set_param( 'user_id', $u2 );
288+
$response = $this->server->dispatch( $request );
289+
290+
$this->assertEquals( 200, $response->get_status() );
291+
292+
$all_data = $response->get_data();
293+
294+
$data = current( $all_data );
295+
296+
$this->assertTrue( isset( $data['message']['raw'] ) );
297+
$this->assertTrue( isset( $data['excerpt']['raw'] ) );
298+
$this->assertTrue( isset( $data['subject']['raw'] ) );
299+
$this->assertSame( 'Foo', $data['subject']['raw'] );
300+
301+
$message = $data['messages'][0];
302+
303+
$this->assertSame( $m->id, $message['id'] );
304+
$this->assertTrue( isset( $message['message']['raw'] ) );
305+
$this->assertTrue( isset( $message['subject']['raw'] ) );
306+
307+
$this->assertTrue( isset( $message['message']['rendered'] ) );
308+
$this->assertTrue( isset( $message['subject']['rendered'] ) );
309+
$this->assertSame( 'Foo', $message['subject']['raw'] );
256310
}
257311

258312
/**

0 commit comments

Comments
 (0)