etf_balancer 1.1.0

Balance a portfolio of ETFs across multiple accounts
Documentation
use actix_web::{get, post, web, App, HttpResponse, HttpServer, Responder};
use etf_balancer::accounts::Portfolio;
use etf_balancer::run_balancing;

#[get("/")]
async fn index() -> impl Responder {
    HttpResponse::TemporaryRedirect()
        .header("Location", "https://github.com/gnmerritt/etf-balancer")
        .finish()
}

#[post("/balance")]
async fn balance(accounts: web::Json<Portfolio>) -> impl Responder {
    match accounts.validate() {
        None => HttpResponse::Ok().json(run_balancing(accounts.into_inner())),
        Some(err) => HttpResponse::BadRequest().json(err),
    }
}

#[actix_rt::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| App::new().service(index).service(balance))
        .bind("127.0.0.1:8000")?
        .run()
        .await
}