BP_REST_Activity_Endpoint::create_item( WP_REST_Request $request )
Create an activity.
Description
Parameters
- $request
-
(Required) Full data about the request.
Return
(WP_REST_Response) | WP_Error
Source
File: bp-activity/classes/class-bp-rest-activity-endpoint.php
public function create_item( $request ) {
$request->set_param( 'context', 'edit' );
if ( true === $this->bp_rest_activity_content_validate( $request ) ) {
return new WP_Error(
'bp_rest_create_activity_empty_content',
__( 'Please, enter some content.', 'buddyboss' ),
array(
'status' => 400,
)
);
}
$prepared_activity = $this->prepare_item_for_database( $request );
if ( ! isset( $request['hidden'] ) && isset( $prepared_activity->hide_sitewide ) ) {
$request['hidden'] = $prepared_activity->hide_sitewide;
}
// Fallback for the activity_update type.
$type = 'activity_update';
if ( ! empty( $request['type'] ) ) {
$type = $request['type'];
}
$prime = $request['primary_item_id'];
$activity_id = 0;
// Post a regular activity update.
if ( 'activity_update' === $type ) {
if ( bp_is_active( 'groups' ) && ! is_null( $prime ) ) {
$activity_id = groups_post_update( $prepared_activity );
} else {
$activity_id = bp_activity_post_update( $prepared_activity );
}
// Post an activity comment.
} elseif ( 'activity_comment' === $type ) {
// ID of the root activity item.
if ( isset( $prime ) ) {
$prepared_activity->activity_id = (int) $prime;
}
// ID of a parent comment.
if ( isset( $request['secondary_item_id'] ) ) {
$prepared_activity->parent_id = (int) $request['secondary_item_id'];
}
$activity_id = bp_activity_new_comment( $prepared_activity );
// Otherwise add an activity.
} else {
$activity_id = bp_activity_add( $prepared_activity );
}
if ( ! is_numeric( $activity_id ) ) {
return new WP_Error(
'bp_rest_user_cannot_create_activity',
__( 'Cannot create new activity.', 'buddyboss' ),
array(
'status' => 500,
)
);
}
$activity = bp_activity_get_specific(
array(
'activity_ids' => array( $activity_id ),
'display_comments' => 'stream',
)
);
$activity = current( $activity['activities'] );
$fields_update = $this->update_additional_fields_for_object( $activity, $request );
if ( is_wp_error( $fields_update ) ) {
return $fields_update;
}
$retval = $this->prepare_response_for_collection(
$this->prepare_item_for_response( $activity, $request )
);
$response = rest_ensure_response( $retval );
/**
* Fires after an activity item is created via the REST API.
*
* @param BP_Activity_Activity $activity The created activity.
* @param WP_REST_Response $response The response data.
* @param WP_REST_Request $request The request sent to the API.
*
* @since 0.1.0
*/
do_action( 'bp_rest_activity_create_item', $activity, $response, $request );
return $response;
}
Changelog
| Version | Description |
|---|---|
| 0.1.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.