diff --git a/server/src/commands/serve.rs b/server/src/commands/serve.rs index b5e0eb4c..4e8e48ff 100644 --- a/server/src/commands/serve.rs +++ b/server/src/commands/serve.rs @@ -38,7 +38,7 @@ pub fn serve(project_path: &PathBuf, port: Option) { } let config = SessionConfig { - partitions + partitions: partitions.clone(), }; println!("Using session config {:#?}", config); @@ -51,6 +51,7 @@ pub fn serve(project_path: &PathBuf, port: Option) { server_id, rbx_session: session.get_rbx_session(), message_session: session.get_message_session(), + partitions, }; println!("Server listening on port {}", web_config.port); diff --git a/server/src/web.rs b/server/src/web.rs index 16cc9ae1..f910c43d 100644 --- a/server/src/web.rs +++ b/server/src/web.rs @@ -8,6 +8,7 @@ use id::Id; use rbx::RbxInstance; use rbx_session::RbxSession; use message_session::{MessageSession, Message}; +use partition::Partition; /// The set of configuration the web server needs to start. pub struct WebConfig { @@ -15,6 +16,7 @@ pub struct WebConfig { pub server_id: u64, pub rbx_session: Arc>, pub message_session: MessageSession, + pub partitions: HashMap, } #[derive(Debug, Serialize)] @@ -30,6 +32,7 @@ struct ServerInfoResponse<'a> { struct ReadAllResponse<'a> { server_id: &'a str, instances: &'a HashMap, + partitions: &'a HashMap, message_cursor: i32, } @@ -121,9 +124,16 @@ pub fn start(config: WebConfig) { messages.len() as i32 - 1 }; + let mut partitions = HashMap::new(); + + for partition in config.partitions.values() { + partitions.insert(partition.name.clone(), partition.target.as_slice()); + } + json_response(ReadAllResponse { server_id: &server_id, message_cursor, + partitions: &partitions, instances: &rbx_session.instances, }) },