session_list.rs (687B)
1 use anyhow::Result; 2 use jsonrpsee::server::RpcModule; 3 4 use crate::core::nip46::session::Nip46SessionView; 5 use crate::transport::jsonrpc::{MethodRegistry, RpcContext}; 6 7 pub fn register(m: &mut RpcModule<RpcContext>, registry: &MethodRegistry) -> Result<()> { 8 registry.track("nip46.session.list"); 9 m.register_async_method("nip46.session.list", |_params, ctx, _| async move { 10 let sessions = ctx.state.nip46_sessions.list().await; 11 let entries = sessions 12 .into_iter() 13 .map(|session| session.public_view()) 14 .collect::<Vec<_>>(); 15 Ok::<Vec<Nip46SessionView>, crate::transport::jsonrpc::RpcError>(entries) 16 })?; 17 Ok(()) 18 }