mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 01:16:31 +03:00
jsonrpc: add dm_chat_contact to ChatListItemFetchResult
This commit is contained in:
@@ -42,6 +42,8 @@ pub enum ChatListItemFetchResult {
|
|||||||
is_pinned: bool,
|
is_pinned: bool,
|
||||||
is_muted: bool,
|
is_muted: bool,
|
||||||
is_contact_request: bool,
|
is_contact_request: bool,
|
||||||
|
/// contact id if this is a dm chat (for view profile entry in context menu)
|
||||||
|
dm_chat_contact: Option<u32>,
|
||||||
},
|
},
|
||||||
ArchiveLink,
|
ArchiveLink,
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
@@ -86,9 +88,15 @@ pub(crate) async fn get_chat_list_item_by_id(
|
|||||||
None => None,
|
None => None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let self_in_group = get_chat_contacts(ctx, chat_id)
|
let chat_contacts = get_chat_contacts(ctx, chat_id).await?;
|
||||||
.await?
|
|
||||||
.contains(&ContactId::SELF);
|
let self_in_group = chat_contacts.contains(&ContactId::SELF);
|
||||||
|
|
||||||
|
let dm_chat_contact = if chat.get_type() == Chattype::Single {
|
||||||
|
chat_contacts.get(0).map(|contact_id| contact_id.to_u32())
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
};
|
||||||
|
|
||||||
let fresh_message_counter = chat_id.get_fresh_msg_cnt(ctx).await?;
|
let fresh_message_counter = chat_id.get_fresh_msg_cnt(ctx).await?;
|
||||||
let color = color_int_to_hex_string(chat.get_color(ctx).await?);
|
let color = color_int_to_hex_string(chat.get_color(ctx).await?);
|
||||||
@@ -113,5 +121,6 @@ pub(crate) async fn get_chat_list_item_by_id(
|
|||||||
is_pinned: visibility == ChatVisibility::Pinned,
|
is_pinned: visibility == ChatVisibility::Pinned,
|
||||||
is_muted: chat.is_muted(),
|
is_muted: chat.is_muted(),
|
||||||
is_contact_request: chat.is_contact_request(),
|
is_contact_request: chat.is_contact_request(),
|
||||||
|
dm_chat_contact,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,11 @@ export type ProviderInfo={"before_login_hint":string;"overview_page":string;"sta
|
|||||||
export type Usize=number;
|
export type Usize=number;
|
||||||
export type ChatListEntry=[U32,U32];
|
export type ChatListEntry=[U32,U32];
|
||||||
export type I64=number;
|
export type I64=number;
|
||||||
export type ChatListItemFetchResult=(({"type":"ChatListItem";}&{"id":U32;"name":string;"avatarPath":(string|null);"color":string;"lastUpdated":(I64|null);"summaryText1":string;"summaryText2":string;"summaryStatus":U32;"isProtected":boolean;"isGroup":boolean;"freshMessageCounter":Usize;"isSelfTalk":boolean;"isDeviceTalk":boolean;"isSendingLocation":boolean;"isSelfInGroup":boolean;"isArchived":boolean;"isPinned":boolean;"isMuted":boolean;"isContactRequest":boolean;})|{"type":"ArchiveLink";}|({"type":"Error";}&{"id":U32;"error":string;}));
|
export type ChatListItemFetchResult=(({"type":"ChatListItem";}&{"id":U32;"name":string;"avatarPath":(string|null);"color":string;"lastUpdated":(I64|null);"summaryText1":string;"summaryText2":string;"summaryStatus":U32;"isProtected":boolean;"isGroup":boolean;"freshMessageCounter":Usize;"isSelfTalk":boolean;"isDeviceTalk":boolean;"isSendingLocation":boolean;"isSelfInGroup":boolean;"isArchived":boolean;"isPinned":boolean;"isMuted":boolean;"isContactRequest":boolean;
|
||||||
|
/**
|
||||||
|
* contact id if this is a dm chat (for view profile entry in context menu)
|
||||||
|
*/
|
||||||
|
"dmChatContact":(U32|null);})|{"type":"ArchiveLink";}|({"type":"Error";}&{"id":U32;"error":string;}));
|
||||||
export type Contact={"address":string;"color":string;"auth_name":string;"status":string;"display_name":string;"id":U32;"name":string;"profile_image":(string|null);"name_and_addr":string;"is_blocked":boolean;"is_verified":boolean;};
|
export type Contact={"address":string;"color":string;"auth_name":string;"status":string;"display_name":string;"id":U32;"name":string;"profile_image":(string|null);"name_and_addr":string;"is_blocked":boolean;"is_verified":boolean;};
|
||||||
export type FullChat={"id":U32;"name":string;"is_protected":boolean;"profile_image":(string|null);"archived":boolean;"chat_type":U32;"is_unpromoted":boolean;"is_self_talk":boolean;"contacts":(Contact)[];"contact_ids":(U32)[];"color":string;"fresh_message_counter":Usize;"is_contact_request":boolean;"is_device_chat":boolean;"self_in_group":boolean;"is_muted":boolean;"ephemeral_timer":U32;"can_send":boolean;};
|
export type FullChat={"id":U32;"name":string;"is_protected":boolean;"profile_image":(string|null);"archived":boolean;"chat_type":U32;"is_unpromoted":boolean;"is_self_talk":boolean;"contacts":(Contact)[];"contact_ids":(U32)[];"color":string;"fresh_message_counter":Usize;"is_contact_request":boolean;"is_device_chat":boolean;"self_in_group":boolean;"is_muted":boolean;"ephemeral_timer":U32;"can_send":boolean;};
|
||||||
export type I32=number;
|
export type I32=number;
|
||||||
|
|||||||
Reference in New Issue
Block a user