Files
catapult/src/main.rs
T
phoenix 5ae1715fb4
catapult PR / Rustfmt (pull_request) Failing after 35s
catapult PR / Check (pull_request) Successful in 1m42s
catapult PR / Clippy (pull_request) Failing after 2m28s
Adding token related code
2026-06-22 23:01:03 -04:00

60 lines
1.7 KiB
Rust

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let args = std::env::args().collect();
if catapult::version::contains_version(&args) {
catapult::version::print_version();
std::process::exit(-1);
}
let app = match catapult::app::load_app().await {
Ok(app) => app,
Err(err) => {
eprintln!("Error: {err:?}");
std::process::exit(-1);
}
};
println!("App: {app:?}");
let auth = catapult::service::auth::Auth { app: app.clone() };
let token = match auth.get_token().await {
Ok(token) => token,
Err(err) => {
eprintln!("Error getting token");
eprintln!("Error: {err:?}");
std::process::exit(-1);
}
};
println!("Access token: {}", token.access_token);
let mut svc = catapult::service::core::Service {
app: app.clone(),
token: token,
};
loop {
// TODO: Need to update textsender_models. The token module needs updating.
// The LoginResult needs expires_in populated
if catapult::service::auth::has_token_expired(&svc.token).await {
match auth.get_refresh_token(&svc.token).await {
Ok(refresh) => {
println!("Refresh token: {refresh:?}");
svc.token = refresh;
}
Err(err) => {
eprintln!("Error: {err:?}");
std::process::exit(-1);
}
}
}
svc.do_the_work().await;
tokio::time::sleep(tokio::time::Duration::from_secs(
catapult::app::SECONDS_TO_SLEEP,
))
.await;
}
}