Add automatic websocket reconnection
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
16
src/init.rs
16
src/init.rs
@@ -3,13 +3,13 @@ use crate::{
|
||||
database,
|
||||
};
|
||||
use log::{info, warn};
|
||||
use qrust::types::alpaca;
|
||||
use qrust::{alpaca, types};
|
||||
use std::{collections::HashMap, sync::Arc};
|
||||
use time::OffsetDateTime;
|
||||
use tokio::join;
|
||||
|
||||
pub async fn check_account(config: &Arc<Config>) {
|
||||
let account = alpaca::api::incoming::account::get(
|
||||
let account = alpaca::account::get(
|
||||
&config.alpaca_client,
|
||||
&config.alpaca_rate_limiter,
|
||||
None,
|
||||
@@ -19,7 +19,7 @@ pub async fn check_account(config: &Arc<Config>) {
|
||||
.unwrap();
|
||||
|
||||
assert!(
|
||||
!(account.status != alpaca::api::incoming::account::Status::Active),
|
||||
!(account.status != types::alpaca::api::incoming::account::Status::Active),
|
||||
"Account status is not active: {:?}.",
|
||||
account.status
|
||||
);
|
||||
@@ -46,11 +46,11 @@ pub async fn rehydrate_orders(config: &Arc<Config>) {
|
||||
let mut orders = vec![];
|
||||
let mut after = OffsetDateTime::UNIX_EPOCH;
|
||||
|
||||
while let Some(message) = alpaca::api::incoming::order::get(
|
||||
while let Some(message) = alpaca::orders::get(
|
||||
&config.alpaca_client,
|
||||
&config.alpaca_rate_limiter,
|
||||
&alpaca::api::outgoing::order::Order {
|
||||
status: Some(alpaca::api::outgoing::order::Status::All),
|
||||
&types::alpaca::api::outgoing::order::Order {
|
||||
status: Some(types::alpaca::api::outgoing::order::Status::All),
|
||||
after: Some(after),
|
||||
..Default::default()
|
||||
},
|
||||
@@ -67,7 +67,7 @@ pub async fn rehydrate_orders(config: &Arc<Config>) {
|
||||
|
||||
let orders = orders
|
||||
.into_iter()
|
||||
.flat_map(&alpaca::api::incoming::order::Order::normalize)
|
||||
.flat_map(&types::alpaca::api::incoming::order::Order::normalize)
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
database::orders::upsert_batch(
|
||||
@@ -85,7 +85,7 @@ pub async fn rehydrate_positions(config: &Arc<Config>) {
|
||||
info!("Rehydrating position data.");
|
||||
|
||||
let positions_future = async {
|
||||
alpaca::api::incoming::position::get(
|
||||
alpaca::positions::get(
|
||||
&config.alpaca_client,
|
||||
&config.alpaca_rate_limiter,
|
||||
None,
|
||||
|
Reference in New Issue
Block a user