radrootsd

JSON-RPC bridge for Radroots event publishing
git clone https://radroots.dev/git/radrootsd.git
Log | Files | Refs | README | LICENSE

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 }