-
Notifications
You must be signed in to change notification settings - Fork 94
/
messageInterfaces.ts
75 lines (68 loc) · 1.97 KB
/
messageInterfaces.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/** @todo contribute these to @types/rocketchat and require */
export interface IMessage {
rid: string | null // room ID
_id?: string // generated by Random.id()
t?: string // type e.g. rm
msg?: string // text content
alias?: string // ??
emoji?: string // emoji to use as avatar
avatar?: string // url
groupable?: boolean // ?
bot?: any // integration details
urls?: string[] // ?
mentions?: string[] // ?
attachments?: IMessageAttachment[]
reactions?: IMessageReaction
location ?: IMessageLocation
u?: IUser // User that sent the message
editedBy?: IUser // User that edited the message
editedAt?: Date // When the message was edited
}
export interface IUser {
_id: string
username: string
name?: string
}
export interface IMessageAttachment {
fields?: IAttachmentField[]
actions?: IMessageAction[]
color?: string
text?: string
ts?: string
thumb_url?: string
message_link?: string
collapsed?: boolean
author_name?: string
author_link?: string
author_icon?: string
title?: string
title_link?: string
title_link_download?: string
image_url?: string
audio_url?: string
video_url?: string
}
export interface IAttachmentField {
short?: boolean
title?: string
value?: string
}
export interface IMessageAction {
type?: string
text?: string
url?: string
image_url?: string
is_webview?: boolean
webview_height_ratio?: 'compact' | 'tall' | 'full'
msg?: string
msg_in_chat_window?: boolean
button_alignment?: 'vertical' | 'horizontal'
temporary_buttons?: boolean
}
export interface IMessageLocation {
type: string // e.g. Point
coordinates: string[] // longitude latitude
}
export interface IMessageReaction {
[emoji: string]: { usernames: string[] } // emoji: [usernames that reacted]
}