blob: cc8e386d5838261364b78a791e552689407b7752 [file] [log] [blame]
class Contact {
constructor(uri) {
this.uri = uri;
this.displayName = undefined;
this.registeredName = undefined;
}
static from(object) {
const contact = new Contact(object.uri);
if (object.registeredName) contact.setRegisteredName(object.registeredName);
return contact;
}
getUri() {
return this.uri;
}
getRegisteredName() {
return this.registeredName;
}
setRegisteredName(name) {
this.registeredName = name;
}
isRegisteredNameResolved() {
return this.registeredName !== undefined;
}
getDisplayName() {
return this.getDisplayNameNoFallback() || this.getUri();
}
getDisplayNameNoFallback() {
return this.displayName || this.getRegisteredName();
}
async getObject() {
return {
uri: this.uri,
registeredName: await this.registeredName,
};
}
}
export default Contact;