2022-03-12 16:19:54 +01:00
|
|
|
use std::io::Write;
|
|
|
|
use std::net::TcpStream;
|
|
|
|
use std::sync::{Arc, RwLock};
|
|
|
|
|
|
|
|
use anyhow::Result;
|
|
|
|
|
2022-03-16 09:51:29 +01:00
|
|
|
use bank::bank::Bank;
|
|
|
|
|
2022-03-12 16:19:54 +01:00
|
|
|
use crate::commands::Command;
|
|
|
|
use crate::protocol;
|
|
|
|
|
|
|
|
pub struct GetAccountNrs;
|
|
|
|
|
|
|
|
impl Command for GetAccountNrs {
|
|
|
|
fn execute(&self, bank: Arc<RwLock<Bank>>, _: &[u8], mut stream: &TcpStream) -> Result<usize> {
|
|
|
|
info!("getting account numbers...");
|
|
|
|
|
|
|
|
let bank = bank.read().unwrap();
|
2022-03-18 19:35:34 +01:00
|
|
|
let nrs: Vec<String> = bank.account_numbers().into_iter().collect();
|
2022-03-12 16:19:54 +01:00
|
|
|
|
|
|
|
let written = stream.write(&protocol::account_nrs(&nrs))?;
|
|
|
|
|
|
|
|
Ok(written)
|
|
|
|
}
|
2022-03-18 19:35:34 +01:00
|
|
|
}
|