Browse Source

Use MessageChannel in post_sell_order HTTP handler

refactor/no-log-handler
Lucas Soriano del Pino 3 years ago
parent
commit
3d9601e665
No known key found for this signature in database GPG Key ID: EE611E973A1530E7
  1. 3
      daemon/src/maker.rs
  2. 10
      daemon/src/routes_maker.rs

3
daemon/src/maker.rs

@ -288,8 +288,11 @@ async fn main() -> Result<()> {
tokio::spawn(maker_inc_connections_address.attach_stream(listener_stream)); tokio::spawn(maker_inc_connections_address.attach_stream(listener_stream));
tokio::spawn(wallet_sync::new(wallet, wallet_feed_sender)); tokio::spawn(wallet_sync::new(wallet, wallet_feed_sender));
let new_order_channel =
MessageChannel::<maker_cfd::NewOrder>::clone_channel(&cfd_maker_actor_inbox);
Ok(rocket Ok(rocket
.manage(cfd_maker_actor_inbox) .manage(cfd_maker_actor_inbox)
.manage(new_order_channel)
.manage(cfd_feed_receiver)) .manage(cfd_feed_receiver))
}, },
)) ))

10
daemon/src/routes_maker.rs

@ -17,6 +17,7 @@ use std::borrow::Cow;
use std::path::PathBuf; use std::path::PathBuf;
use tokio::select; use tokio::select;
use tokio::sync::watch; use tokio::sync::watch;
use xtra::prelude::MessageChannel;
use xtra::Address; use xtra::Address;
#[rocket::get("/feed")] #[rocket::get("/feed")]
@ -109,18 +110,17 @@ pub struct CfdNewOrderRequest {
} }
#[rocket::post("/order/sell", data = "<order>")] #[rocket::post("/order/sell", data = "<order>")]
pub async fn post_sell_order( pub fn post_sell_order(
order: Json<CfdNewOrderRequest>, order: Json<CfdNewOrderRequest>,
cfd_actor_address: &State<Address<maker_cfd::Actor>>, new_order_channel: &State<Box<dyn MessageChannel<maker_cfd::NewOrder>>>,
_auth: Authenticated, _auth: Authenticated,
) -> Result<status::Accepted<()>, Status> { ) -> Result<status::Accepted<()>, Status> {
cfd_actor_address new_order_channel
.do_send_async(maker_cfd::NewOrder { .do_send(maker_cfd::NewOrder {
price: order.price, price: order.price,
min_quantity: order.min_quantity, min_quantity: order.min_quantity,
max_quantity: order.max_quantity, max_quantity: order.max_quantity,
}) })
.await
.map_err(|_| Status::new(500))?; .map_err(|_| Status::new(500))?;
Ok(status::Accepted(None)) Ok(status::Accepted(None))

Loading…
Cancel
Save