BP_REST_Messages_Endpoint::prepare_item_for_response( BP_Messages_Thread $thread, WP_REST_Request $request )
Prepares thread data for return as an object.
Description Description
Parameters Parameters
- $thread
-
(Required) Thread object.
- $request
-
(Required) Full details about the request.
Return Return
(WP_REST_Response)
Source Source
File: bp-messages/classes/class-bp-rest-messages-endpoint.php
public function prepare_item_for_response( $thread, $request ) {
$excerpt = '';
if ( isset( $thread->last_message_content ) ) {
$excerpt = wp_strip_all_tags( bp_create_excerpt( $thread->last_message_content, 75 ) );
}
$data = array(
'id' => $thread->thread_id,
'message_id' => $thread->last_message_id,
'last_sender_id' => $thread->last_sender_id,
'subject' => array(
'raw' => $thread->last_message_subject,
'rendered' => apply_filters( 'bp_get_message_thread_subject', wp_staticize_emoji( $thread->last_message_subject ) ),
),
'excerpt' => array(
'raw' => $excerpt,
'rendered' => apply_filters( 'bp_get_message_thread_excerpt', $excerpt ),
),
'message' => array(
'raw' => $thread->last_message_content,
'rendered' => apply_filters( 'bp_get_message_thread_content', wp_staticize_emoji( $thread->last_message_content ) ),
),
'date' => bp_rest_prepare_date_response( $thread->last_message_date ),
'unread_count' => ! empty( $thread->unread_count ) ? $thread->unread_count : 0,
'sender_ids' => $thread->sender_ids,
'recipients' => array(),
'messages' => array(),
);
// Loop through messages to prepare them for the response.
foreach ( $thread->messages as $message ) {
$data['messages'][] = $this->prepare_message_for_response( $message, $request );
}
// Loop through recipients to prepare them for the response.
foreach ( $thread->recipients as $recipient ) {
$data['recipients'][ $recipient->user_id ] = $this->prepare_recipient_for_response( $recipient, $request );
}
// Pluck starred message ids.
$data['starred_message_ids'] = array_keys( array_filter( wp_list_pluck( $data['messages'], 'is_starred', 'id' ) ) );
$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
$data = $this->add_additional_fields_to_object( $data, $request );
$data = $this->filter_response_by_context( $data, $context );
$response = rest_ensure_response( $data );
$response->add_links( $this->prepare_links( $thread ) );
/**
* Filter a thread value returned from the API.
*
* @since 5.0.0
*
* @param WP_REST_Response $response Response generated by the request.
* @param WP_REST_Request $request Request used to generate the response.
* @param BP_Messages_Thread $thread The thread object.
*/
return apply_filters( 'bp_rest_messages_prepare_value', $response, $request, $thread );
}
Changelog Changelog
| Version | Description |
|---|---|
| 5.0.0 | Introduced. |