Browse Source

Add HTTP API to get cfds and takers

no-buy-button-while-setting-up-cfd
bonomat 3 years ago
parent
commit
696d82cc6a
No known key found for this signature in database GPG Key ID: E5F8E74C672BC666
  1. 4
      daemon/src/maker.rs
  2. 26
      daemon/src/routes_maker.rs

4
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])

26
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<Feeds>,
_auth: Authenticated,
) -> Result<Json<Vec<Cfd>>, 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<Feeds>,
_auth: Authenticated,
) -> Result<Json<Vec<Identity>>, 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::*;

Loading…
Cancel
Save