BP_REST_Topics_Endpoint::get_item_schema()
Get the forums schema, conforming to JSON Schema.
Description
Return
(array)
Source
File: bp-forums/classes/class-bp-rest-topics-endpoint.php
public function get_item_schema() {
$schema = array(
'$schema' => 'http://json-schema.org/draft-04/schema#',
'title' => 'topics',
'type' => 'object',
'properties' => array(
'id' => array(
'description' => __( 'Unique identifier for the topic.', 'buddyboss' ),
'type' => 'integer',
'context' => array( 'embed', 'view', 'edit' ),
'readonly' => true,
),
'date' => array(
'description' => __( 'The date the object was published, in the site\'s timezone.', 'buddyboss' ),
'type' => 'string',
'format' => 'date-time',
'context' => array( 'embed', 'view', 'edit' ),
),
'date_gmt' => array(
'description' => __( 'The date the object was published, as GMT.', 'buddyboss' ),
'type' => 'string',
'format' => 'date-time',
'context' => array( 'embed', 'view', 'edit' ),
),
'guid' => array(
'description' => __( 'The url identifier for the topic.', 'buddyboss' ),
'type' => 'object',
'context' => array( 'embed', 'view', 'edit' ),
'readonly' => true,
'properties' => array(
'raw' => array(
'description' => __( 'GUID for the topic, as it exists in the database.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
'rendered' => array(
'description' => __( 'GUID for the topic, transformed for display.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
),
),
'modified' => array(
'description' => __( 'The date for topic was last modified, in the site\'s timezone.', 'buddyboss' ),
'type' => 'string',
'format' => 'date-time',
'context' => array( 'embed', 'view', 'edit' ),
'readonly' => true,
),
'modified_gmt' => array(
'description' => __( 'The date for topic was last modified, as GMT.', 'buddyboss' ),
'type' => 'string',
'format' => 'date-time',
'context' => array( 'embed', 'view', 'edit' ),
'readonly' => true,
),
'password' => array(
'description' => __( 'A password to protect access to the post.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'edit' ),
),
'slug' => array(
'description' => __( 'An alphanumeric unique identifier for the topic.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
'arg_options' => array(
'sanitize_callback' => 'sanitize_title',
),
),
'status' => array(
'description' => __( 'The current status of the topic.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
'link' => array(
'description' => __( 'The permalink to this topic on the site.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
'format' => 'uri',
),
'author' => array(
'description' => __( 'The ID for the author of the topic.', 'buddyboss' ),
'type' => 'integer',
'context' => array( 'embed', 'view', 'edit' ),
),
'parent' => array(
'description' => __( 'ID of the parent topic.', 'buddyboss' ),
'type' => 'integer',
'context' => array( 'embed', 'view', 'edit' ),
),
'sticky' => array(
'description' => __( 'Whether the topic is sticky or not.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'total_reply_count' => array(
'description' => __( 'Total replies count in the topic.', 'buddyboss' ),
'type' => 'integer',
'context' => array( 'embed', 'view', 'edit' ),
),
'last_reply_id' => array(
'description' => __( 'Recently posted reply id into the topic.', 'buddyboss' ),
'type' => 'integer',
'context' => array( 'embed', 'view', 'edit' ),
),
'last_active_author' => array(
'description' => __( 'Last updated the user\'s ID in topic.', 'buddyboss' ),
'type' => 'integer',
'context' => array( 'embed', 'view', 'edit' ),
),
'last_active_time' => array(
'description' => __( 'Last updated time for the topic.', 'buddyboss' ),
'type' => 'date-time',
'context' => array( 'embed', 'view', 'edit' ),
),
'is_closed' => array(
'description' => __( 'Whether the topic is closed or not.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'voice_count' => array(
'description' => __( 'Voice count of the topic', 'buddyboss' ),
'type' => 'integer',
'context' => array( 'embed', 'view', 'edit' ),
),
'forum_id' => array(
'description' => __( 'Forum ID for the topic.', 'buddyboss' ),
'type' => 'integer',
'context' => array( 'embed', 'view', 'edit' ),
),
'is_topic_anonymous' => array(
'description' => __( 'Whether the post is by an anonymous user or not.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'anonymous_author_data' => array(
'description' => __( 'An anonymous users data.', 'buddyboss' ),
'type' => 'object',
'context' => array( 'embed', 'view', 'edit' ),
'properties' => array(
'name' => array(
'description' => __( 'Name of the anonymous user.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
'email' => array(
'description' => __( 'Email address of the anonymous user.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
'website' => array(
'description' => __( 'Website of the anonymous user.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
'avatar' => array(
'description' => __( 'Avatar url of the anonymous user.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
),
),
'classes' => array(
'description' => __( 'Classes lists for the topic.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
'title' => array(
'description' => __( 'The title of the topic.', 'buddyboss' ),
'context' => array( 'embed', 'view', 'edit' ),
'type' => 'object',
'properties' => array(
'raw' => array(
'description' => __( 'Content for the title of the topic, as it exists in the database.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
'rendered' => array(
'description' => __( 'The title of the topic, transformed for display.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
),
),
'short_content' => array(
'description' => __( 'Short Content of the topic.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
'content' => array(
'context' => array( 'embed', 'view', 'edit' ),
'description' => __( 'The content of the topic.', 'buddyboss' ),
'type' => 'object',
'properties' => array(
'raw' => array(
'description' => __( 'Content for the topic, as it exists in the database.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
'rendered' => array(
'description' => __( 'HTML content for the topic, transformed for display.', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
),
),
'group' => array(
'description' => __( 'Topic forum\'s group.', 'buddyboss' ),
'context' => array( 'embed', 'view', 'edit' ),
'type' => 'object',
),
'action_states' => array(
'context' => array( 'embed', 'view', 'edit' ),
'description' => __( 'Available actions with current user for topic.', 'buddyboss' ),
'type' => 'object',
'properties' => array(
'subscribed' => array(
'description' => __( 'Check whether the current user is subscribed or not in the topic.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'favorited' => array(
'description' => __( 'Check whether the topic is favorited or not for the user.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'open' => array(
'description' => __( 'Check whether the topic is open or not for the user.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'sticky' => array(
'description' => __( 'Check whether the topic is sticky or not for the user.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'super_sticky' => array(
'description' => __( 'Check whether the topic is super sticky or not for the user.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'spam' => array(
'description' => __( 'Check whether the topic status is spam or not.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'trash' => array(
'description' => __( 'Check whether the topic status is trash or not.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
),
),
'topic_tags' => array(
'description' => __( 'Topic\'s tags', 'buddyboss' ),
'type' => 'string',
'context' => array( 'embed', 'view', 'edit' ),
),
'current_user_permissions' => array(
'context' => array( 'embed', 'view', 'edit' ),
'description' => __( 'Current user\'s permission with the topic.', 'buddyboss' ),
'type' => 'object',
'properties' => array(
'show_replies' => array(
'description' => __( 'Whether shows the replies for the current user or not.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'edit' => array(
'description' => __( 'Whether the current user can edit the topic or not.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'moderate' => array(
'description' => __( 'Whether the current user is moderator or not.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'reply' => array(
'description' => __( 'Whether the current user can reply on topic or not.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
'trash' => array(
'description' => __( 'Whether the current user can trash a topic or not.', 'buddyboss' ),
'type' => 'boolean',
'context' => array( 'embed', 'view', 'edit' ),
),
),
),
'revisions' => array(
'description' => __( 'Revisions for topic.', 'buddyboss' ),
'context' => array( 'embed', 'view', 'edit' ),
'type' => 'object',
),
),
);
/**
* Filters the topic schema.
*
* @param string $schema The endpoint schema.
*/
return apply_filters( 'bp_rest_topic_schema', $this->add_additional_fields_schema( $schema ) );
}
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.