Kaizen
Browse modulesChatchat/serverFunctions

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

ParameterType
optionsChatServiceOptions

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

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ actorIds: string[]; }
input.actorIdsstring[]

Returns

Promise<ChatConversation>

listMembersPage

listMembersPage: (principalInput: {
  actorId: string;
  organizationId: string;
}, input: {
  conversationId: string;
  cursor?: string;
  limit?: number;
}) => Promise<{
  items: ChatMember[];
  nextCursor: string | null;
}>;

Parameters

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ conversationId: string; cursor?: string; limit?: number; }
input.conversationIdstring
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

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ actorIds: string[]; conversationId: string; }
input.actorIdsstring[]
input.conversationIdstring

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

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ conversationId: string; }
input.conversationIdstring

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

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ name: string; }
input.namestring

Returns

Promise<ChatConversation>

createDirect()

createDirect(principalInput: {
  actorId: string;
  organizationId: string;
}, input: {
  actorId: string;
}): Promise<ChatConversation>;

Parameters

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ actorId: string; }
input.actorIdstring

Returns

Promise<ChatConversation>

createGroup()

createGroup(principalInput: {
  actorId: string;
  organizationId: string;
}, input: {
  actorIds: string[];
  title: string;
}): Promise<ChatConversation>;

Parameters

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ actorIds: string[]; title: string; }
input.actorIdsstring[]
input.titlestring

Returns

Promise<ChatConversation>

getConversation()

getConversation(principalInput: {
  actorId: string;
  organizationId: string;
}, input: {
  conversationId: string;
}): Promise<ChatConversation>;

Parameters

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ conversationId: string; }
input.conversationIdstring

Returns

Promise<ChatConversation>

joinChannel()

joinChannel(principalInput: {
  actorId: string;
  organizationId: string;
}, input: {
  conversationId: string;
}): Promise<ChatConversation>;

Parameters

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ conversationId: string; }
input.conversationIdstring

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

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ cursor?: { conversationId: string; title: string; }; limit?: number; }
input.cursor?{ conversationId: string; title: string; }
input.cursor.conversationIdstring
input.cursor.titlestring
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

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ cursor?: { activityAt: string; conversationId: string; }; limit?: number; types?: ("group" | "channel" | "direct" | "group_dm")[]; }
input.cursor?{ activityAt: string; conversationId: string; }
input.cursor.activityAtstring
input.cursor.conversationIdstring
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

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ conversationId: string; }
input.conversationIdstring

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

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ beforeSequence?: number; conversationId: string; limit?: number; }
input.beforeSequence?number
input.conversationIdstring
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

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ conversationId: string; throughSequence: number; }
input.conversationIdstring
input.throughSequencenumber

Returns

Promise<ChatConversation>

removeMember()

removeMember(principalInput: {
  actorId: string;
  organizationId: string;
}, input: {
  actorId: string;
  conversationId: string;
}): Promise<void>;

Parameters

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ actorId: string; conversationId: string; }
input.actorIdstring
input.conversationIdstring

Returns

Promise<void>

sendMessage()

sendMessage(principalInput: {
  actorId: string;
  organizationId: string;
}, input: {
  clientRequestId: string;
  conversationId: string;
  text: string;
}): Promise<ChatMessage>;

Parameters

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ clientRequestId: string; conversationId: string; text: string; }
input.clientRequestIdstring
input.conversationIdstring
input.textstring

Returns

Promise<ChatMessage>

setMemberRole()

setMemberRole(principalInput: {
  actorId: string;
  organizationId: string;
}, input: {
  actorId: string;
  conversationId: string;
  role: "member" | "admin";
}): Promise<void>;

Parameters

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ actorId: string; conversationId: string; role: "member" | "admin"; }
input.actorIdstring
input.conversationIdstring
input.role"member" | "admin"

Returns

Promise<void>

sync()

sync(principalInput: {
  actorId: string;
  organizationId: string;
}, input: {
  afterVersion: number;
  conversationId: string;
  limit?: number;
}): Promise<ChatSyncPage>;

Parameters

ParameterType
principalInput{ actorId: string; organizationId: string; }
principalInput.actorIdstring
principalInput.organizationIdstring
input{ afterVersion: number; conversationId: string; limit?: number; }
input.afterVersionnumber
input.conversationIdstring
input.limit?number

Returns

Promise<ChatSyncPage>

On this page