From 0057a2faa20bc56c84e7e03e0a8cf2963f90d870 Mon Sep 17 00:00:00 2001 From: dboures Date: Tue, 14 Mar 2023 00:45:29 -0500 Subject: [PATCH] feat: add markets endpoint --- src/server/main.rs | 9 +++++---- src/server/markets.rs | 9 +++++++++ src/server/mod.rs | 3 ++- src/structs/markets.rs | 4 ++-- 4 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 src/server/markets.rs diff --git a/src/server/main.rs b/src/server/main.rs index cd11197..6c6bfb2 100644 --- a/src/server/main.rs +++ b/src/server/main.rs @@ -5,17 +5,17 @@ use actix_web::{ }; use candles::get_candles; use dotenv; +use markets::get_markets; use openbook_candles::{ candle_creation::trade_fetching::scrape::fetch_market_infos, database::initialize::connect_to_database, structs::markets::load_markets, utils::{Config, WebContext}, }; -use traders::get_top_traders_by_base_volume; - -use crate::traders::get_top_traders_by_quote_volume; +use traders::{get_top_traders_by_base_volume, get_top_traders_by_quote_volume}; mod candles; +mod markets; mod server_error; mod traders; @@ -55,7 +55,8 @@ async fn main() -> std::io::Result<()> { web::scope("/api") .service(get_candles) .service(get_top_traders_by_base_volume) - .service(get_top_traders_by_quote_volume), + .service(get_top_traders_by_quote_volume) + .service(get_markets), ) }) .bind(("127.0.0.1", 8080))? diff --git a/src/server/markets.rs b/src/server/markets.rs new file mode 100644 index 0000000..3caa320 --- /dev/null +++ b/src/server/markets.rs @@ -0,0 +1,9 @@ +use crate::server_error::ServerError; +use actix_web::{get, web, HttpResponse}; +use openbook_candles::utils::WebContext; + +#[get("/markets")] +pub async fn get_markets(context: web::Data) -> Result { + let markets = context.markets.clone(); + Ok(HttpResponse::Ok().json(markets)) +} diff --git a/src/server/mod.rs b/src/server/mod.rs index c49c73f..ca8a407 100644 --- a/src/server/mod.rs +++ b/src/server/mod.rs @@ -1,2 +1,3 @@ pub mod candles; -pub mod traders; \ No newline at end of file +pub mod traders; +pub mod markets; \ No newline at end of file diff --git a/src/structs/markets.rs b/src/structs/markets.rs index 892fd9b..17e39fe 100644 --- a/src/structs/markets.rs +++ b/src/structs/markets.rs @@ -1,7 +1,7 @@ -use serde::Deserialize; +use serde::{Deserialize, Serialize}; use std::fs::File; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Serialize)] pub struct MarketInfo { pub name: String, pub address: String,