use actix_web::{post, web, HttpResponse, Responder, Result}; use serde::{Deserialize, Serialize}; use crate::AppState; #[derive(Serialize, Deserialize)] pub struct OwnerData { pub(crate) owner: String, } #[derive(Serialize)] struct AccountCreated { nr: String, } #[post("")] pub async fn route( form: web::Form, data: web::Data, ) -> Result { let owner = &form.owner; info!("creating new account with owner {}...", owner); let mut bank = data.bank.write().unwrap(); let nr = bank.create_account(owner.clone()); info!("created account {}", nr); Ok(HttpResponse::Created().json(AccountCreated { nr })) }