From ff822c9158a56e23cc8d9b9a813d4649ef424516 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 6 Aug 2021 14:47:18 -0700 Subject: [PATCH] wip --- server/src/tests.rs | 19 ++++++++++++------- zed/src/channel.rs | 31 +++++++++++++++++++++++++++++++ zed/src/lib.rs | 1 + zed/src/rpc.rs | 1 + 4 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 zed/src/channel.rs diff --git a/server/src/tests.rs b/server/src/tests.rs index 86980e8673..257bdfb8d8 100644 --- a/server/src/tests.rs +++ b/server/src/tests.rs @@ -513,13 +513,18 @@ async fn test_basic_chat(mut cx_a: TestAppContext, cx_b: TestAppContext) { ) .await .unwrap(); - assert_eq!( - db.get_recent_channel_messages(channel_id, 50) - .await - .unwrap()[0] - .body, - "first message!" - ); + + let channels_a = client_a.get_channels().await; + assert_eq!(channels_a.len(), 1); + assert_eq!(channels_a[0].read(&cx_a).name(), "test-channel"); + + // assert_eq!( + // db.get_recent_channel_messages(channel_id, 50) + // .await + // .unwrap()[0] + // .body, + // "first message!" + // ); } struct TestServer { diff --git a/zed/src/channel.rs b/zed/src/channel.rs new file mode 100644 index 0000000000..c846999e8e --- /dev/null +++ b/zed/src/channel.rs @@ -0,0 +1,31 @@ +use crate::rpc::Client; +use gpui::{Entity, ModelHandle, WeakModelHandle}; +use std::{ + collections::{HashMap, VecDeque}, + sync::Arc, +}; + +pub struct ChannelList { + channels: HashMap>, + rpc: Arc, +} + +pub struct Channel { + id: u64, + name: String, + first_message_id: Option, + messages: Option>, + rpc: Arc, +} + +pub struct ChannelMessage { + id: u64, +} + +enum Event {} + +impl Entity for ChannelList { + type Event = Event; +} + +impl ChannelList {} diff --git a/zed/src/lib.rs b/zed/src/lib.rs index e59fb3fd67..f283584c0e 100644 --- a/zed/src/lib.rs +++ b/zed/src/lib.rs @@ -1,4 +1,5 @@ pub mod assets; +pub mod channel; pub mod editor; pub mod file_finder; pub mod fs; diff --git a/zed/src/rpc.rs b/zed/src/rpc.rs index f455376f20..7c1640ce82 100644 --- a/zed/src/rpc.rs +++ b/zed/src/rpc.rs @@ -29,6 +29,7 @@ pub struct Client { pub struct ClientState { connection_id: Option, pub shared_worktrees: HashMap>, + pub channel_list: Option>, pub languages: Arc, }