Cubicl Docs
Search
K
Comment on page

Chat

The chat feature is organized by chat threads and messages in the chat threads.

Endpoints

get
https://cubicl.io/api/v1
/chat/threads
Get Chat Threads
get
https://cubicl.io/api/v1
/chat/threads/:threadId/messages
Get Messages
post
https://cubicl.io/api/v1
/chat/messages
Send Message

Data

Chat Threads

Chat messages are sent in a thread. Threads have 3 types:
  1. 1.
    personal: Between 2 users. Created when a user sends a message to another user.
  2. 2.
    group: Created for each project. All project members are members of these threads.
  3. 3.
    custom: Created among a group of users by users themselves. This is a private chat group.
type ChatThread = {
_id: string;
type: 'personal' | 'group' | 'custom';
// Project id. Exists when type is 'group'
group?: string;
// Name of the thread. Exists when type is 'custom'
name?: string;
// Ids of users in the chat thread. Exists when type is 'personal' or 'custom'
users: string[];
// Date of last activity (message) in the thread
activity: number;
// Date at which current user viewed the thread. 0 if not accessed before.
access: number;
lastMessage: ChatMessage | null;
// Number of new messages since last access.
newActivityCount: number;
createdAt: number;
}

Chat Messages

type ChatMessage = {
_id: string;
// Thread id
thread: string;
// Id of the user who sent the message
from: string;
content: string;
// File attachments in the message. Check Files page for data format.
files: File[];
// Ids of the users who liked the message
likes: string[];
dislikes: string[];
// If a message is a reply to another message, this will be the referenced
// message id
replyTo: string | null;
createdAt: number;
}