users.ts•1.3 kB
import { SlackClientWrapper } from '../utils/slack-client.js';
import {
listUsersSchema,
getUserInfoSchema,
inviteToChannelSchema,
} from '../utils/validators.js';
export async function listUsers(client: SlackClientWrapper, args: unknown) {
const params = listUsersSchema.parse(args);
return await client.safeCall(async () => {
const result = await client.getClient().users.list({
limit: params.limit,
cursor: params.cursor,
});
return {
members: result.members || [],
next_cursor: result.response_metadata?.next_cursor,
};
});
}
export async function getUserInfo(client: SlackClientWrapper, args: unknown) {
const params = getUserInfoSchema.parse(args);
return await client.safeCall(async () => {
const result = await client.getClient().users.info({
user: params.user,
});
return {
user: result.user,
};
});
}
export async function inviteToChannel(client: SlackClientWrapper, args: unknown) {
const params = inviteToChannelSchema.parse(args);
return await client.safeCall(async () => {
const result = await client.getClient().conversations.invite({
channel: params.channel,
users: params.users.join(','),
});
return {
ok: true,
channel: result.channel,
};
});
}