Skip to main content
Glama
stores-users.ts6.56 kB
import { BaseService, ServiceInfo } from './base-service.js'; export class StoresUsersService extends BaseService { getServiceInfo(): ServiceInfo { return { name: 'stores-users', description: 'Store users operations - manage store user access and permissions', category: 'store-management', methods: [ { name: 'getUsers', description: 'Get store users', parameters: { storeId: { type: 'string', description: 'Store ID', required: true } }, examples: [ { name: 'Get all store users', description: 'List all users with access to the store', parameters: { storeId: 'store123' } } ] }, { name: 'addUser', description: 'Add a user to the store', parameters: { storeId: { type: 'string', description: 'Store ID', required: true }, id: { type: 'string', description: 'The id of the user', required: false }, email: { type: 'string', description: 'The email of the user', required: true }, name: { type: 'string', description: 'The name of the user', required: false }, storeRole: { type: 'string', description: 'The role of the user (Owner, Manager, Employee, Guest)', required: true }, emailConfirmed: { type: 'boolean', description: 'True if the email has been confirmed by the user', required: false }, approved: { type: 'boolean', description: 'True if an admin has approved the user', required: false }, disabled: { type: 'boolean', description: 'True if an admin has disabled the user', required: false } }, examples: [ { name: 'Add manager user', description: 'Add a new manager to the store', parameters: { storeId: 'store123', email: 'manager@example.com', name: 'John Manager', storeRole: 'Manager', emailConfirmed: true, approved: true } } ] }, { name: 'updateUser', description: 'Update a store user', parameters: { storeId: { type: 'string', description: 'Store ID', required: true }, idOrEmail: { type: 'string', description: 'The user\'s id or email', required: true }, storeRole: { type: 'string', description: 'The role of the user (Owner, Manager, Employee, Guest)', required: false }, name: { type: 'string', description: 'The name of the user', required: false }, approved: { type: 'boolean', description: 'True if an admin has approved the user', required: false }, disabled: { type: 'boolean', description: 'True if an admin has disabled the user', required: false } }, examples: [ { name: 'Promote user to manager', description: 'Change user role from employee to manager', parameters: { storeId: 'store123', idOrEmail: 'employee@example.com', storeRole: 'Manager' } } ] }, { name: 'removeUser', description: 'Remove a user from the store', parameters: { storeId: { type: 'string', description: 'Store ID', required: true }, idOrEmail: { type: 'string', description: 'The user\'s id or email', required: true } }, examples: [ { name: 'Remove user access', description: 'Remove user access from the store', parameters: { storeId: 'store123', idOrEmail: 'former-employee@example.com' } } ] } ] }; } protected async handleMethod(methodName: string, parameters: Record<string, any>): Promise<any> { switch (methodName) { case 'getUsers': return await this.client.getStoreUsers(parameters.storeId); case 'addUser': return await this.client.addStoreUser( parameters.storeId, { id: parameters.id || '', email: parameters.email || '', name: parameters.name || null, imageUrl: parameters.imageUrl || null, invitationUrl: parameters.invitationUrl || null, emailConfirmed: parameters.emailConfirmed || false, requiresEmailConfirmation: parameters.requiresEmailConfirmation || false, approved: parameters.approved || false, requiresApproval: parameters.requiresApproval || false, created: parameters.created || null, disabled: parameters.disabled || false, roles: parameters.roles || [], userId: parameters.userId, role: parameters.role, storeRole: parameters.storeRole } ); case 'updateUser': return await this.client.updateStoreUser( parameters.storeId, parameters.idOrEmail, { storeRole: parameters.storeRole, name: parameters.name, approved: parameters.approved, disabled: parameters.disabled } ); case 'removeUser': return await this.client.removeStoreUser(parameters.storeId, parameters.idOrEmail); default: throw new Error(`Method ${methodName} not implemented`); } } }

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/Abhijay007/btcpayserver-mcp'

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