add: get_company_from_db()
This commit is contained in:
parent
4d888a9954
commit
22b57e7fb7
|
@ -1,5 +1,6 @@
|
|||
use libtrader::initializer::libtrader_init;
|
||||
use libtrader::db::cmd::create_company::create_company;
|
||||
use libtrader::db::cmd::get_company::get_company_from_db;
|
||||
use libtrader::ds::generic::company::Company;
|
||||
use libtrader::ds::server::global_state::GlobalState;
|
||||
|
||||
|
@ -9,13 +10,22 @@ fn main() {
|
|||
Err(err) => panic!("Failed with error: {}", err),
|
||||
};
|
||||
|
||||
let company: Company = Company::default();
|
||||
let mut company: Company = Company::default();
|
||||
company.id = 1;
|
||||
company.symbol = "TEST".to_string();
|
||||
company.isin = "TEST".to_string();
|
||||
company.company_name = "TEST".to_string();
|
||||
company.primary_exchange = "TEST".to_string();
|
||||
match create_company(&mut state, company) {
|
||||
Ok(()) => println!("created company"),
|
||||
Err(err) => panic!("Failed to create company with error: {}", err),
|
||||
}
|
||||
|
||||
match get_company_from_db(&mut state, "TEST".to_string()) {
|
||||
Ok(found_company) => println!("we found it! {:?}", found_company),
|
||||
Err(err) => panic!("we must found the sacred company! err: {}", err),
|
||||
}
|
||||
|
||||
println!("Hello World!");
|
||||
println!("state: {:?}\n", state);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
use crate::db::init::db_connect;
|
||||
use crate::ds::server::global_state::GlobalState;
|
||||
use crate::ds::generic::company::Company;
|
||||
|
||||
pub fn get_company_from_db(state: &mut GlobalState, searched_symbol: String) -> Result<&Company, String> {
|
||||
/*
|
||||
* Searches in database if company is available
|
||||
*/
|
||||
// Connect to database.
|
||||
let mut client = db_connect(&state)?;
|
||||
match client.query("SELECT * FROM public.companies WHERE symbol=$1",
|
||||
&[&searched_symbol]) {
|
||||
Ok(row) => {
|
||||
let mut found_company: Company = Company::default();
|
||||
found_company.id = row[0].get(0);
|
||||
found_company.symbol = row[0].get(1);
|
||||
found_company.isin = row[0].get(2);
|
||||
found_company.company_name = row[0].get(3);
|
||||
found_company.primary_exchange = row[0].get(4);
|
||||
found_company.sector = row[0].get(5);
|
||||
found_company.industry = row[0].get(6);
|
||||
found_company.primary_sic_code = row[0].get(7);
|
||||
found_company.employees = row[0].get(8);
|
||||
|
||||
// add found_company to state.
|
||||
state.companies.insert(row[0].get(1), found_company);
|
||||
|
||||
match state.companies.get(&searched_symbol) {
|
||||
Some(company) => Ok(company),
|
||||
None => Err("DB_SEARCH_COMPANY_NOT_FOUND".to_string())
|
||||
}
|
||||
},
|
||||
Err(err) => Err(format!("DB_SEARCH_COMPANY_NOT_FOUND: {}", err)),
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user