Skip to main content
Glama
users.ts2.21 kB
/** * Users Operations Module * Handles all user-related WordPress REST API operations */ import type { WordPressUser, UserQueryParams, CreateUserRequest, UpdateUserRequest } from "@/types/wordpress.js"; /** * Interface for the base client methods needed by users operations */ export interface UsersClientBase { get<T>(endpoint: string): Promise<T>; post<T>(endpoint: string, data?: unknown): Promise<T>; put<T>(endpoint: string, data?: unknown): Promise<T>; delete<T>(endpoint: string): Promise<T>; } /** * Users operations mixin * Provides CRUD operations for WordPress users */ export class UsersOperations { constructor(private client: UsersClientBase) {} /** * Get a list of users with optional filtering */ async getUsers(params?: UserQueryParams): Promise<WordPressUser[]> { const normalizedParams = params ? Object.fromEntries(Object.entries(params).map(([k, v]) => [k, String(v)])) : undefined; const queryString = normalizedParams ? "?" + new URLSearchParams(normalizedParams).toString() : ""; return this.client.get<WordPressUser[]>(`users${queryString}`); } /** * Get a single user by ID or "me" for current user */ async getUser(id: number | "me", context: "view" | "embed" | "edit" = "view"): Promise<WordPressUser> { return this.client.get<WordPressUser>(`users/${id}?context=${context}`); } /** * Create a new user */ async createUser(data: CreateUserRequest): Promise<WordPressUser> { return this.client.post<WordPressUser>("users", data); } /** * Update an existing user */ async updateUser(data: UpdateUserRequest): Promise<WordPressUser> { const { id, ...updateData } = data; return this.client.put<WordPressUser>(`users/${id}`, updateData); } /** * Delete a user */ async deleteUser(id: number, reassign?: number): Promise<{ deleted: boolean; previous?: WordPressUser }> { const params = reassign ? `?reassign=${reassign}&force=true` : "?force=true"; return this.client.delete(`users/${id}${params}`); } /** * Get the current authenticated user */ async getCurrentUser(): Promise<WordPressUser> { return this.getUser("me", "edit"); } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/docdyhr/mcp-wordpress'

If you have feedback or need assistance with the MCP directory API, please join our Discord server