WIP: Start integrating with LiveKit when creating/joining rooms
This commit is contained in:
parent
75c339851f
commit
c9225bb87c
9 changed files with 120 additions and 24 deletions
|
@ -1,6 +1,7 @@
|
|||
use crate::db::{self, ChannelId, ProjectId, UserId};
|
||||
use anyhow::{anyhow, Result};
|
||||
use collections::{btree_map, BTreeMap, BTreeSet, HashMap, HashSet};
|
||||
use nanoid::nanoid;
|
||||
use rpc::{proto, ConnectionId};
|
||||
use serde::Serialize;
|
||||
use std::{mem, path::PathBuf, str, time::Duration};
|
||||
|
@ -339,7 +340,7 @@ impl Store {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn create_room(&mut self, creator_connection_id: ConnectionId) -> Result<RoomId> {
|
||||
pub fn create_room(&mut self, creator_connection_id: ConnectionId) -> Result<&proto::Room> {
|
||||
let connection = self
|
||||
.connections
|
||||
.get_mut(&creator_connection_id)
|
||||
|
@ -353,19 +354,23 @@ impl Store {
|
|||
"can't create a room with an active call"
|
||||
);
|
||||
|
||||
let mut room = proto::Room::default();
|
||||
room.participants.push(proto::Participant {
|
||||
user_id: connection.user_id.to_proto(),
|
||||
peer_id: creator_connection_id.0,
|
||||
projects: Default::default(),
|
||||
location: Some(proto::ParticipantLocation {
|
||||
variant: Some(proto::participant_location::Variant::External(
|
||||
proto::participant_location::External {},
|
||||
)),
|
||||
}),
|
||||
});
|
||||
|
||||
let room_id = post_inc(&mut self.next_room_id);
|
||||
let room = proto::Room {
|
||||
id: room_id,
|
||||
participants: vec![proto::Participant {
|
||||
user_id: connection.user_id.to_proto(),
|
||||
peer_id: creator_connection_id.0,
|
||||
projects: Default::default(),
|
||||
location: Some(proto::ParticipantLocation {
|
||||
variant: Some(proto::participant_location::Variant::External(
|
||||
proto::participant_location::External {},
|
||||
)),
|
||||
}),
|
||||
}],
|
||||
pending_participant_user_ids: Default::default(),
|
||||
live_kit_room: nanoid!(30),
|
||||
};
|
||||
|
||||
self.rooms.insert(room_id, room);
|
||||
connected_user.active_call = Some(Call {
|
||||
caller_user_id: connection.user_id,
|
||||
|
@ -373,7 +378,7 @@ impl Store {
|
|||
connection_id: Some(creator_connection_id),
|
||||
initial_project_id: None,
|
||||
});
|
||||
Ok(room_id)
|
||||
Ok(self.rooms.get(&room_id).unwrap())
|
||||
}
|
||||
|
||||
pub fn join_room(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue