Browse Source
Use MessageChannel in post_sell_order HTTP handler
refactor/no-log-handler
Lucas Soriano del Pino
3 years ago
No known key found for this signature in database
GPG Key ID: EE611E973A1530E7
2 changed files with
8 additions and
5 deletions
-
daemon/src/maker.rs
-
daemon/src/routes_maker.rs
|
|
@ -288,8 +288,11 @@ async fn main() -> Result<()> { |
|
|
|
tokio::spawn(maker_inc_connections_address.attach_stream(listener_stream)); |
|
|
|
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 |
|
|
|
.manage(cfd_maker_actor_inbox) |
|
|
|
.manage(new_order_channel) |
|
|
|
.manage(cfd_feed_receiver)) |
|
|
|
}, |
|
|
|
)) |
|
|
|
|
|
@ -17,6 +17,7 @@ use std::borrow::Cow; |
|
|
|
use std::path::PathBuf; |
|
|
|
use tokio::select; |
|
|
|
use tokio::sync::watch; |
|
|
|
use xtra::prelude::MessageChannel; |
|
|
|
use xtra::Address; |
|
|
|
|
|
|
|
#[rocket::get("/feed")] |
|
|
@ -109,18 +110,17 @@ pub struct CfdNewOrderRequest { |
|
|
|
} |
|
|
|
|
|
|
|
#[rocket::post("/order/sell", data = "<order>")] |
|
|
|
pub async fn post_sell_order( |
|
|
|
pub fn post_sell_order( |
|
|
|
order: Json<CfdNewOrderRequest>, |
|
|
|
cfd_actor_address: &State<Address<maker_cfd::Actor>>, |
|
|
|
new_order_channel: &State<Box<dyn MessageChannel<maker_cfd::NewOrder>>>, |
|
|
|
_auth: Authenticated, |
|
|
|
) -> Result<status::Accepted<()>, Status> { |
|
|
|
cfd_actor_address |
|
|
|
.do_send_async(maker_cfd::NewOrder { |
|
|
|
new_order_channel |
|
|
|
.do_send(maker_cfd::NewOrder { |
|
|
|
price: order.price, |
|
|
|
min_quantity: order.min_quantity, |
|
|
|
max_quantity: order.max_quantity, |
|
|
|
}) |
|
|
|
.await |
|
|
|
.map_err(|_| Status::new(500))?; |
|
|
|
|
|
|
|
Ok(status::Accepted(None)) |
|
|
|