pub mod assets; pub mod health; use crate::{config::Config, threads}; use axum::{ routing::{delete, get, post}, serve, Extension, Router, }; use log::info; use std::{net::SocketAddr, sync::Arc}; use tokio::{net::TcpListener, sync::mpsc}; pub async fn run( app_config: Arc, asset_status_sender: mpsc::Sender, ) { let app = Router::new() .route("/health", get(health::get)) .route("/assets", get(assets::get)) .route("/assets/:symbol", get(assets::get_where_symbol)) .route("/assets", post(assets::add)) .route("/assets/:symbol", delete(assets::delete)) .layer(Extension(app_config)) .layer(Extension(asset_status_sender)); let addr = SocketAddr::from(([0, 0, 0, 0], 7878)); let listener = TcpListener::bind(addr).await.unwrap(); info!("Listening on {}.", addr); serve(listener, app).await.unwrap(); }