diff --git a/taptrade-cli-demo/coordinator/src/communication/api.rs b/taptrade-cli-demo/coordinator/src/communication/api.rs index 52988df..7912101 100644 --- a/taptrade-cli-demo/coordinator/src/communication/api.rs +++ b/taptrade-cli-demo/coordinator/src/communication/api.rs @@ -35,6 +35,7 @@ pub struct OrderActivatedResponse { pub bond_locked_until_timestamp: u64, // unix timestamp. Do not touch bond till then unless offer gets taken. } +#[derive(Deserialize, Serialize, Debug)] pub struct OffersRequest { pub buy_offers: bool, // true if looking for buy offers, false if looking for sell offers pub amount_min_sat: u64, diff --git a/taptrade-cli-demo/coordinator/src/communication/mod.rs b/taptrade-cli-demo/coordinator/src/communication/mod.rs index f634da5..fc81389 100755 --- a/taptrade-cli-demo/coordinator/src/communication/mod.rs +++ b/taptrade-cli-demo/coordinator/src/communication/mod.rs @@ -70,26 +70,18 @@ async fn submit_maker_bond( async fn fetch_available_offers( Extension(database): Extension, - Extension(_): Extension, Json(payload): Json, -) -> Result, AppError> { - // let suitable_offers: Option> = - database.fetch_suitable_offers(&payload).await?; +) -> Result, AppError> { + let offers: Option> = database.fetch_suitable_offers(&payload).await?; - Ok(Json(OrderActivatedResponse { - offer_id_hex: "test".to_string(), - bond_locked_until_timestamp: 21312313, - })) - // Ok(Json(PublicOffers { - // offers: suitable_offers, - // })) + Ok(Json(PublicOffers { offers })) } pub async fn api_server(database: CoordinatorDB, wallet: CoordinatorWallet) -> Result<()> { let app = Router::new() .route("/create-offer", post(receive_order)) .route("/submit-maker-bond", post(submit_maker_bond)) - // .route("/fetch-available-offers", post(fetch_available_offers)) + .route("/fetch-available-offers", post(fetch_available_offers)) .layer(Extension(database)) .layer(Extension(wallet)); // add other routes here diff --git a/taptrade-cli-demo/coordinator/src/database/mod.rs b/taptrade-cli-demo/coordinator/src/database/mod.rs index 6e50681..7e35a5b 100644 --- a/taptrade-cli-demo/coordinator/src/database/mod.rs +++ b/taptrade-cli-demo/coordinator/src/database/mod.rs @@ -202,31 +202,34 @@ impl CoordinatorDB { Ok(Some(available_offers)) } } + #[cfg(test)] mod tests { use anyhow::Ok; -use super::*; - async fn create_coordinator()-> Result { + use super::*; + async fn create_coordinator() -> Result { // Set up the in-memory database env::set_var("DATABASE_PATH", ":memory:"); // Initialize the database - let database= CoordinatorDB::init().await?; + let database = CoordinatorDB::init().await?; Ok(database) - } #[tokio::test] async fn test_init() -> Result<()> { let database = create_coordinator().await?; // Verify the table creation - let table_exists = sqlx::query("SELECT name FROM sqlite_master WHERE type='table' AND name='maker_requests'") - .fetch_optional(&*database.db_pool) - .await? - .is_some(); + let table_exists = sqlx::query( + "SELECT name FROM sqlite_master WHERE type='table' AND name='maker_requests'", + ) + .fetch_optional(&*database.db_pool) + .await? + .is_some(); assert!(table_exists, "The maker_requests table should exist."); Ok(()) } + #[tokio::test] async fn test_insert_new_maker_request() -> Result<()> { let database = create_coordinator().await?; @@ -246,7 +249,9 @@ use super::*; }; // Insert the new maker request - database.insert_new_maker_request(&order_request, &bond_requirement_response).await?; + database + .insert_new_maker_request(&order_request, &bond_requirement_response) + .await?; // Verify the insertion let row = sqlx::query("SELECT * FROM maker_requests WHERE robohash = ?") @@ -264,4 +269,3 @@ use super::*; Ok(()) } } -