BP_REST_Groups_Endpoint::get_item_schema()
Get the group schema, conforming to JSON Schema.
Description
Return
(array)
Source
File: bp-groups/classes/class-bp-rest-groups-endpoint.php
public function get_item_schema() { $schema = array( '$schema' => 'http://json-schema.org/draft-04/schema#', 'title' => 'bp_groups', 'type' => 'object', 'properties' => array( 'id' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'A unique numeric ID for the Group.', 'buddyboss' ), 'readonly' => true, 'type' => 'integer', ), 'creator_id' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'The ID of the user who created the Group.', 'buddyboss' ), 'type' => 'integer', 'default' => bp_loggedin_user_id(), ), 'name' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'The name of the Group.', 'buddyboss' ), 'type' => 'string', 'required' => true, 'arg_options' => array( 'sanitize_callback' => 'sanitize_text_field', ), ), 'slug' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'The URL-friendly slug for the Group.', 'buddyboss' ), 'type' => 'string', 'arg_options' => array( 'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database(). ), ), 'link' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'The permalink to the Group on the site.', 'buddyboss' ), 'type' => 'string', 'format' => 'uri', 'readonly' => true, ), 'description' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'The description of the Group.', 'buddyboss' ), 'type' => 'object', 'required' => true, 'arg_options' => array( 'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database(). 'validate_callback' => null, // Note: validation implemented in self::prepare_item_for_database(). ), 'properties' => array( 'raw' => array( 'description' => __( 'Content for the description of the Group, as it exists in the database.', 'buddyboss' ), 'type' => 'string', 'context' => array( 'embed', 'view', 'edit' ), ), 'rendered' => array( 'description' => __( 'HTML content for the description of the Group, transformed for display.', 'buddyboss' ), 'type' => 'string', 'context' => array( 'embed', 'view', 'edit' ), 'readonly' => true, ), ), ), 'status' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'The status of the Group.', 'buddyboss' ), 'type' => 'string', 'enum' => buddypress()->groups->valid_status, 'default' => 'public', 'arg_options' => array( 'sanitize_callback' => 'sanitize_key', ), ), 'enable_forum' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'Whether the Group has a forum enabled or not.', 'buddyboss' ), 'type' => 'boolean', ), 'parent_id' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'ID of the parent Group.', 'buddyboss' ), 'type' => 'integer', ), 'date_created' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( "The date the Group was created, in the site's timezone.", 'buddyboss' ), 'readonly' => true, 'type' => 'string', 'format' => 'date-time', ), 'types' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'The type(s) of the Group.', 'buddyboss' ), 'readonly' => true, 'enum' => bp_groups_get_group_types(), 'type' => 'array', 'items' => array( 'type' => 'string', ), ), 'subgroups_id' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'Sub Groups id if having a sub groups.', 'buddyboss' ), 'readonly' => true, 'type' => 'array', 'items' => array( 'type' => 'integer', ), ), 'admins' => array( 'context' => array( 'edit' ), 'description' => __( 'Group administrators.', 'buddyboss' ), 'readonly' => true, 'type' => 'array', 'items' => array( 'type' => 'object', ), ), 'mods' => array( 'context' => array( 'edit' ), 'description' => __( 'Group moderators.', 'buddyboss' ), 'readonly' => true, 'type' => 'array', 'items' => array( 'type' => 'object', ), ), 'total_member_count' => array( 'context' => array( 'edit' ), 'description' => __( 'Count of all Group members.', 'buddyboss' ), 'readonly' => true, 'type' => 'integer', ), 'last_activity' => array( 'context' => array( 'edit' ), 'description' => __( "The date the Group was last active, in the site's timezone.", 'buddyboss' ), 'type' => 'string', 'readonly' => true, 'format' => 'date-time', ), // Adding additional schema. 'is_member' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'The current user is member of a group or not.', 'buddyboss' ), 'type' => 'boolean', 'readonly' => true, ), 'invite_id' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'Return\'s invite ID if current user is invited for a group or not.', 'buddyboss' ), 'type' => 'integer', 'readonly' => true, ), 'request_id' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'Return\'s request ID if invitation is pending for a group or not.', 'buddyboss' ), 'type' => 'integer', 'readonly' => true, ), 'is_admin' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'The current user is admin of a group or not.', 'buddyboss' ), 'type' => 'boolean', 'readonly' => true, ), 'is_mod' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'The current user is moderator of a group or not.', 'buddyboss' ), 'type' => 'boolean', 'readonly' => true, ), 'members_count' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'Members count of the group.', 'buddyboss' ), 'type' => 'integer', 'readonly' => true, ), 'role' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'Current member\'s role label in the group.', 'buddyboss' ), 'type' => 'string', 'readonly' => true, ), 'plural_role' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'Current member\'s role label in the plural form in the group', 'buddyboss' ), 'type' => 'string', 'readonly' => true, ), 'can_join' => array( 'context' => array( 'view', 'edit' ), 'description' => __( 'Check current user can join or request access.', 'buddyboss' ), 'type' => 'boolean', 'readonly' => true, ), 'forum' => array( 'context' => array( 'embed', 'view', 'edit' ), 'description' => __( 'Forum id of the group.', 'buddyboss' ), 'type' => 'integer', 'readonly' => true, ), ), ); // Avatars. if ( ! bp_disable_group_avatar_uploads() ) { $avatar_properties = array(); $avatar_properties['full'] = array( /* translators: 1: Full avatar width in pixels. 2: Full avatar height in pixels */ 'description' => sprintf( __( 'Avatar URL with full image size (%1$d x %2$d pixels).', 'buddyboss' ), number_format_i18n( bp_core_avatar_full_width() ), number_format_i18n( bp_core_avatar_full_height() ) ), 'type' => 'string', 'format' => 'uri', 'context' => array( 'embed', 'view', 'edit' ), ); $avatar_properties['thumb'] = array( /* translators: 1: Thumb avatar width in pixels. 2: Thumb avatar height in pixels */ 'description' => sprintf( __( 'Avatar URL with thumb image size (%1$d x %2$d pixels).', 'buddyboss' ), number_format_i18n( bp_core_avatar_thumb_width() ), number_format_i18n( bp_core_avatar_thumb_height() ) ), 'type' => 'string', 'format' => 'uri', 'context' => array( 'embed', 'view', 'edit' ), ); $schema['properties']['avatar_urls'] = array( 'description' => __( 'Avatar URLs for the group.', 'buddyboss' ), 'type' => 'object', 'context' => array( 'embed', 'view', 'edit' ), 'readonly' => true, 'properties' => $avatar_properties, ); } if ( ! bp_disable_group_cover_image_uploads() ) { $schema['properties']['cover_url'] = array( 'description' => __( 'Cover Image URLs for the group.', 'buddyboss' ), 'type' => 'string', 'format' => 'uri', 'context' => array( 'embed', 'view', 'edit' ), 'readonly' => true, ); } /** * Filters the group schema. * * @param array $schema The endpoint schema. */ return apply_filters( 'bp_rest_group_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.