diff --git a/daemon/src/maker.rs b/daemon/src/maker.rs index 2229508..fc8afe1 100644 --- a/daemon/src/maker.rs +++ b/daemon/src/maker.rs @@ -314,7 +314,9 @@ async fn main() -> Result<()> { routes_maker::post_sell_order, routes_maker::post_cfd_action, routes_maker::get_health_check, - routes_maker::post_withdraw_request + routes_maker::post_withdraw_request, + routes_maker::get_cfds, + routes_maker::get_takers, ], ) .register("/api", rocket::catchers![routes_maker::unauthorized]) diff --git a/daemon/src/routes_maker.rs b/daemon/src/routes_maker.rs index 4f0fdaa..b30daaa 100644 --- a/daemon/src/routes_maker.rs +++ b/daemon/src/routes_maker.rs @@ -3,7 +3,7 @@ use bdk::bitcoin::Network; use daemon::auth::Authenticated; use daemon::model::cfd::OrderId; use daemon::model::{Price, Usd, WalletInfo}; -use daemon::projection::{CfdAction, Feeds}; +use daemon::projection::{Cfd, CfdAction, Feeds, Identity}; use daemon::routes::EmbeddedFileExt; use daemon::to_sse_event::ToSseEvent; use daemon::{maker_cfd, maker_inc_connections, monitor, oracle, wallet}; @@ -236,6 +236,30 @@ pub async fn post_withdraw_request( Ok(url) } +#[rocket::get("/cfds")] +pub async fn get_cfds<'r>( + rx: &State, + _auth: Authenticated, +) -> Result>, HttpApiProblem> { + let rx = rx.inner(); + let rx_cfds = rx.cfds.clone(); + let cfds = rx_cfds.borrow().clone(); + + Ok(Json(cfds)) +} + +#[rocket::get("/takers")] +pub async fn get_takers<'r>( + rx: &State, + _auth: Authenticated, +) -> Result>, HttpApiProblem> { + let rx = rx.inner(); + let rx_connected_takers = rx.connected_takers.clone(); + let takers = rx_connected_takers.borrow().clone(); + + Ok(Json(takers)) +} + #[cfg(test)] mod tests { use super::*;