Function: createChatService()
function createChatService(options: ChatServiceOptions): {
createDM: (principalInput: {
actorId: string;
organizationId: string;
}, input: {
actorIds: string[];
}) => Promise<ChatConversation>;
listMembersPage: (principalInput: {
actorId: string;
organizationId: string;
}, input: {
conversationId: string;
cursor?: string;
limit?: number;
}) => Promise<{
items: ChatMember[];
nextCursor: string | null;
}>;
addMembers: Promise<ChatConversation>;
authorizeSubscription: Promise<{
actorId: string;
conversationId: string;
eventVersion: number;
historyFromSequence: number;
joinedVersion: number;
organizationId: string;
}>;
createChannel: Promise<ChatConversation>;
createDirect: Promise<ChatConversation>;
createGroup: Promise<ChatConversation>;
getConversation: Promise<ChatConversation>;
joinChannel: Promise<ChatConversation>;
listChannels: Promise<{
items: ChatChannel[];
nextCursor: | {
conversationId: string;
title: string;
}
| null;
}>;
listConversations: Promise<{
items: ChatConversation[];
nextCursor: | {
activityAt: string;
conversationId: string;
}
| null;
}>;
listMembers: Promise<ChatMember[]>;
listMessages: Promise<{
conversation: ChatConversation;
items: ChatMessage[];
nextBeforeSequence: number | null;
}>;
markRead: Promise<ChatConversation>;
removeMember: Promise<void>;
sendMessage: Promise<ChatMessage>;
setMemberRole: Promise<void>;
sync: Promise<ChatSyncPage>;
};Defined in: server/chat/service.ts:9
Parameters
| Parameter | Type |
|---|---|
options | ChatServiceOptions |
Returns
{
createDM: (principalInput: {
actorId: string;
organizationId: string;
}, input: {
actorIds: string[];
}) => Promise<ChatConversation>;
listMembersPage: (principalInput: {
actorId: string;
organizationId: string;
}, input: {
conversationId: string;
cursor?: string;
limit?: number;
}) => Promise<{
items: ChatMember[];
nextCursor: string | null;
}>;
addMembers: Promise<ChatConversation>;
authorizeSubscription: Promise<{
actorId: string;
conversationId: string;
eventVersion: number;
historyFromSequence: number;
joinedVersion: number;
organizationId: string;
}>;
createChannel: Promise<ChatConversation>;
createDirect: Promise<ChatConversation>;
createGroup: Promise<ChatConversation>;
getConversation: Promise<ChatConversation>;
joinChannel: Promise<ChatConversation>;
listChannels: Promise<{
items: ChatChannel[];
nextCursor: | {
conversationId: string;
title: string;
}
| null;
}>;
listConversations: Promise<{
items: ChatConversation[];
nextCursor: | {
activityAt: string;
conversationId: string;
}
| null;
}>;
listMembers: Promise<ChatMember[]>;
listMessages: Promise<{
conversation: ChatConversation;
items: ChatMessage[];
nextBeforeSequence: number | null;
}>;
markRead: Promise<ChatConversation>;
removeMember: Promise<void>;
sendMessage: Promise<ChatMessage>;
setMemberRole: Promise<void>;
sync: Promise<ChatSyncPage>;
}createDM
createDM: (principalInput: {
actorId: string;
organizationId: string;
}, input: {
actorIds: string[];
}) => Promise<ChatConversation>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { actorIds: string[]; } |
input.actorIds | string[] |
Returns
Promise<ChatConversation>
listMembersPage
listMembersPage: (principalInput: {
actorId: string;
organizationId: string;
}, input: {
conversationId: string;
cursor?: string;
limit?: number;
}) => Promise<{
items: ChatMember[];
nextCursor: string | null;
}>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { conversationId: string; cursor?: string; limit?: number; } |
input.conversationId | string |
input.cursor? | string |
input.limit? | number |
Returns
Promise<{
items: ChatMember[];
nextCursor: string | null;
}>
addMembers()
addMembers(principalInput: {
actorId: string;
organizationId: string;
}, input: {
actorIds: string[];
conversationId: string;
}): Promise<ChatConversation>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { actorIds: string[]; conversationId: string; } |
input.actorIds | string[] |
input.conversationId | string |
Returns
Promise<ChatConversation>
authorizeSubscription()
authorizeSubscription(principalInput: {
actorId: string;
organizationId: string;
}, input: {
conversationId: string;
}): Promise<{
actorId: string;
conversationId: string;
eventVersion: number;
historyFromSequence: number;
joinedVersion: number;
organizationId: string;
}>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { conversationId: string; } |
input.conversationId | string |
Returns
Promise<{
actorId: string;
conversationId: string;
eventVersion: number;
historyFromSequence: number;
joinedVersion: number;
organizationId: string;
}>
createChannel()
createChannel(principalInput: {
actorId: string;
organizationId: string;
}, input: {
name: string;
}): Promise<ChatConversation>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { name: string; } |
input.name | string |
Returns
Promise<ChatConversation>
createDirect()
createDirect(principalInput: {
actorId: string;
organizationId: string;
}, input: {
actorId: string;
}): Promise<ChatConversation>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { actorId: string; } |
input.actorId | string |
Returns
Promise<ChatConversation>
createGroup()
createGroup(principalInput: {
actorId: string;
organizationId: string;
}, input: {
actorIds: string[];
title: string;
}): Promise<ChatConversation>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { actorIds: string[]; title: string; } |
input.actorIds | string[] |
input.title | string |
Returns
Promise<ChatConversation>
getConversation()
getConversation(principalInput: {
actorId: string;
organizationId: string;
}, input: {
conversationId: string;
}): Promise<ChatConversation>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { conversationId: string; } |
input.conversationId | string |
Returns
Promise<ChatConversation>
joinChannel()
joinChannel(principalInput: {
actorId: string;
organizationId: string;
}, input: {
conversationId: string;
}): Promise<ChatConversation>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { conversationId: string; } |
input.conversationId | string |
Returns
Promise<ChatConversation>
listChannels()
listChannels(principalInput: {
actorId: string;
organizationId: string;
}, input?: {
cursor?: {
conversationId: string;
title: string;
};
limit?: number;
}): Promise<{
items: ChatChannel[];
nextCursor: | {
conversationId: string;
title: string;
}
| null;
}>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { cursor?: { conversationId: string; title: string; }; limit?: number; } |
input.cursor? | { conversationId: string; title: string; } |
input.cursor.conversationId | string |
input.cursor.title | string |
input.limit? | number |
Returns
Promise<{
items: ChatChannel[];
nextCursor: | {
conversationId: string;
title: string;
}
| null;
}>
listConversations()
listConversations(principalInput: {
actorId: string;
organizationId: string;
}, input?: {
cursor?: {
activityAt: string;
conversationId: string;
};
limit?: number;
types?: ("group" | "channel" | "direct" | "group_dm")[];
}): Promise<{
items: ChatConversation[];
nextCursor: | {
activityAt: string;
conversationId: string;
}
| null;
}>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { cursor?: { activityAt: string; conversationId: string; }; limit?: number; types?: ("group" | "channel" | "direct" | "group_dm")[]; } |
input.cursor? | { activityAt: string; conversationId: string; } |
input.cursor.activityAt | string |
input.cursor.conversationId | string |
input.limit? | number |
input.types? | ("group" | "channel" | "direct" | "group_dm")[] |
Returns
Promise<{
items: ChatConversation[];
nextCursor: | {
activityAt: string;
conversationId: string;
}
| null;
}>
listMembers()
listMembers(principalInput: {
actorId: string;
organizationId: string;
}, input: {
conversationId: string;
}): Promise<ChatMember[]>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { conversationId: string; } |
input.conversationId | string |
Returns
Promise<ChatMember[]>
listMessages()
listMessages(principalInput: {
actorId: string;
organizationId: string;
}, input: {
beforeSequence?: number;
conversationId: string;
limit?: number;
}): Promise<{
conversation: ChatConversation;
items: ChatMessage[];
nextBeforeSequence: number | null;
}>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { beforeSequence?: number; conversationId: string; limit?: number; } |
input.beforeSequence? | number |
input.conversationId | string |
input.limit? | number |
Returns
Promise<{
conversation: ChatConversation;
items: ChatMessage[];
nextBeforeSequence: number | null;
}>
markRead()
markRead(principalInput: {
actorId: string;
organizationId: string;
}, input: {
conversationId: string;
throughSequence: number;
}): Promise<ChatConversation>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { conversationId: string; throughSequence: number; } |
input.conversationId | string |
input.throughSequence | number |
Returns
Promise<ChatConversation>
removeMember()
removeMember(principalInput: {
actorId: string;
organizationId: string;
}, input: {
actorId: string;
conversationId: string;
}): Promise<void>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { actorId: string; conversationId: string; } |
input.actorId | string |
input.conversationId | string |
Returns
Promise<void>
sendMessage()
sendMessage(principalInput: {
actorId: string;
organizationId: string;
}, input: {
clientRequestId: string;
conversationId: string;
text: string;
}): Promise<ChatMessage>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { clientRequestId: string; conversationId: string; text: string; } |
input.clientRequestId | string |
input.conversationId | string |
input.text | string |
Returns
Promise<ChatMessage>
setMemberRole()
setMemberRole(principalInput: {
actorId: string;
organizationId: string;
}, input: {
actorId: string;
conversationId: string;
role: "member" | "admin";
}): Promise<void>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { actorId: string; conversationId: string; role: "member" | "admin"; } |
input.actorId | string |
input.conversationId | string |
input.role | "member" | "admin" |
Returns
Promise<void>
sync()
sync(principalInput: {
actorId: string;
organizationId: string;
}, input: {
afterVersion: number;
conversationId: string;
limit?: number;
}): Promise<ChatSyncPage>;Parameters
| Parameter | Type |
|---|---|
principalInput | { actorId: string; organizationId: string; } |
principalInput.actorId | string |
principalInput.organizationId | string |
input | { afterVersion: number; conversationId: string; limit?: number; } |
input.afterVersion | number |
input.conversationId | string |
input.limit? | number |
Returns
Promise<ChatSyncPage>