blob: d5c41de84f2b53760ca99d340d9948dfde89ef78 [file] [log] [blame]
Adrien BĂ©raudc4dd44a2021-04-08 01:05:24 -04001class Conversation {
2 constructor(id, members) {
3 this.id = id
4 this.members = members
5 this.messages = []
6 }
7
8 static from(object) {
9 return new Conversation(object.id, object.members)
10 }
11
12 getId() { return this.id }
13
14 getDisplayName() {
15 return this.details["Account.displayName"] || this.getDisplayUri()
16 }
17
18 getUri() { return this.details["Account.username"] }
19
20 getRegisteredName() { return this.volatileDetails["Account.registeredName"] }
21
22 getObject() {
23 return {
24 id: this.id,
25 members: this.members
26 }
27 }
28
29 getSummary() {
30 return this.getObject()
31 }
32
33 getDisplayUri() {
34 return this.getRegisteredName() || this.getUri()
35 }
36
37 addMessage(message) {
38 this.messages.push(message)
39 }
40}
41
42module.exports = Conversation;