buddypress_favorite_activity
Mark activity items as favorites or remove them from favorites to highlight important community content and personalize user feeds in BuddyPress sites.
Instructions
Favorite or unfavorite an activity item
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Activity ID |
Implementation Reference
- src/index.ts:569-571 (handler)Handler that toggles favorite status of an activity item by sending a PUT request to the BuddyPress /activity/{id}/favorite endpoint.else if (name === 'buddypress_favorite_activity') { result = await buddypressRequest(`/activity/${args.id}/favorite`, 'PUT'); }
- src/index.ts:117-127 (registration)Tool registration in the tools array, defining name, description, and input schema (requires activity ID).{ name: 'buddypress_favorite_activity', description: 'Favorite or unfavorite an activity item', inputSchema: { type: 'object', properties: { id: { type: 'number', description: 'Activity ID', required: true }, }, required: ['id'], }, },
- src/index.ts:120-126 (schema)Input schema validation for the tool, requiring a numeric activity ID.inputSchema: { type: 'object', properties: { id: { type: 'number', description: 'Activity ID', required: true }, }, required: ['id'], },
- src/index.ts:18-46 (helper)Shared helper function used by all BuddyPress tools to make authenticated API requests.async function buddypressRequest( endpoint: string, method: string = 'GET', body?: any ): Promise<any> { const url = `${BUDDYPRESS_URL}/wp-json/buddypress/v2${endpoint}`; const auth = Buffer.from(`${BUDDYPRESS_USERNAME}:${BUDDYPRESS_PASSWORD}`).toString('base64'); const options: any = { method, headers: { 'Authorization': `Basic ${auth}`, 'Content-Type': 'application/json', }, }; if (body && method !== 'GET') { options.body = JSON.stringify(body); } const response = await fetch(url, options); if (!response.ok) { const errorText = await response.text(); throw new Error(`BuddyPress API Error (${response.status}): ${errorText}`); } return await response.json(); }