fix: app crashes when adding a contact and getContactById is nil

This commit is contained in:
Richard Ramos 2020-11-16 15:33:10 -04:00 committed by Iuri Matias
parent c10e0a8503
commit 997e34ed8a
2 changed files with 23 additions and 2 deletions

View File

@ -1,5 +1,6 @@
import json, sequtils
import libstatus/contacts as status_contacts
import libstatus/accounts as status_accounts
import profile/profile
import ../eventemitter
@ -43,8 +44,24 @@ proc getContacts*(self: ContactModel): seq[Profile] =
self.events.emit("contactUpdate", ContactUpdateArgs(contacts: result))
proc addContact*(self: ContactModel, id: string, localNickname: string): string =
let contact = self.getContactByID(id)
var contact = self.getContactByID(id)
if contact == nil:
let alias = status_accounts.generateAlias(id)
contact = Profile(
id: id,
username: alias,
identicon: status_accounts.generateIdenticon(id),
alias: alias,
ensName: "",
ensVerified: false,
ensVerifiedAt: 0,
appearance: 0,
ensVerificationRetries: 0,
systemTags: @[]
)
let updating = contact.systemTags.contains(":contact/added")
echo "C"
if not updating:
contact.systemTags.add(":contact/added")
let nickname =

View File

@ -1,5 +1,5 @@
import json
import core, utils
import core, utils, types, settings
from ../profile/profile import Profile
# TODO: remove Profile from here
@ -39,3 +39,7 @@ proc saveContact*(id: string, ensVerified: bool, ensName: string, ensVerifiedAt:
"localNickname": localNickname
}]
callPrivateRPC("saveContact".prefix, payload)
proc requestContactUpdate*(): string =
let publicKey = $getSetting[string](Setting.PublicKey, "")
callPrivateRPC("sendContactUpdate".prefix, %* [publicKey, "", ""])