mirror of
https://github.com/chatmail/core.git
synced 2026-05-20 07:16:31 +03:00
api(jsonrpc): add API to make and import vCards
This commit is contained in:
@@ -118,9 +118,19 @@ class Account:
|
|||||||
obj = obj.get_snapshot().address
|
obj = obj.get_snapshot().address
|
||||||
return Contact(self, self._rpc.create_contact(self.id, obj, name))
|
return Contact(self, self._rpc.create_contact(self.id, obj, name))
|
||||||
|
|
||||||
|
def make_vcard(self, contacts: list[Contact]) -> str:
|
||||||
|
"""Create vCard with the given contacts."""
|
||||||
|
assert all(contact.account == self for contact in contacts)
|
||||||
|
contact_ids = [contact.id for contact in contacts]
|
||||||
|
return self._rpc.make_vcard(self.id, contact_ids)
|
||||||
|
|
||||||
|
def import_vcard(self, vcard: str) -> list[Contact]:
|
||||||
|
contact_ids = self._rpc.import_vcard_contents(self.id, vcard)
|
||||||
|
return [Contact(self, contact_id) for contact_id in contact_ids]
|
||||||
|
|
||||||
def create_chat(self, account: "Account") -> Chat:
|
def create_chat(self, account: "Account") -> Chat:
|
||||||
addr = account.get_config("addr")
|
vcard = account.self_contact.make_vcard()
|
||||||
contact = self.create_contact(addr)
|
[contact] = self.import_vcard(vcard)
|
||||||
return contact.create_chat()
|
return contact.create_chat()
|
||||||
|
|
||||||
def get_contact_by_id(self, contact_id: int) -> Contact:
|
def get_contact_by_id(self, contact_id: int) -> Contact:
|
||||||
|
|||||||
@@ -66,4 +66,4 @@ class Contact:
|
|||||||
)
|
)
|
||||||
|
|
||||||
def make_vcard(self) -> str:
|
def make_vcard(self) -> str:
|
||||||
return self._rpc.make_vcard(self.account.id, [self.id])
|
return self.account.make_vcard([self])
|
||||||
|
|||||||
Reference in New Issue
Block a user