Adding token related code
catapult PR / Rustfmt (pull_request) Failing after 35s
catapult PR / Check (pull_request) Successful in 1m42s
catapult PR / Clippy (pull_request) Failing after 2m28s

This commit is contained in:
2026-06-22 23:01:03 -04:00
parent f2f4176a51
commit 5ae1715fb4
2 changed files with 26 additions and 58 deletions
+16 -10
View File
@@ -30,21 +30,27 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut svc = catapult::service::core::Service { let mut svc = catapult::service::core::Service {
app: app.clone(), app: app.clone(),
// Use a pointer token: token,
token: token.clone(),
}; };
loop { loop {
// catapult::service::do_the_work(&app).await; // TODO: Need to update textsender_models. The token module needs updating.
let refresh_token = match auth.get_refresh_token(&token).await { // The LoginResult needs expires_in populated
Ok(refresh) => refresh, if catapult::service::auth::has_token_expired(&svc.token).await {
Err(err) => { match auth.get_refresh_token(&svc.token).await {
eprintln!("Error: {err:?}"); Ok(refresh) => {
std::process::exit(-1); println!("Refresh token: {refresh:?}");
svc.token = refresh;
}
Err(err) => {
eprintln!("Error: {err:?}");
std::process::exit(-1);
}
} }
}; }
println!("Refresh token: {refresh_token:?}");
svc.do_the_work().await; svc.do_the_work().await;
tokio::time::sleep(tokio::time::Duration::from_secs( tokio::time::sleep(tokio::time::Duration::from_secs(
catapult::app::SECONDS_TO_SLEEP, catapult::app::SECONDS_TO_SLEEP,
)) ))
+10 -48
View File
@@ -112,53 +112,15 @@ pub mod auth {
} }
pub async fn has_token_expired(token: &textsender_models::token::LoginResult) -> bool { pub async fn has_token_expired(token: &textsender_models::token::LoginResult) -> bool {
todo!("Need to finish this"); let now = time::OffsetDateTime::now_utc();
false let expire = match time::OffsetDateTime::from_unix_timestamp(token.expires_in) {
Ok(res) => res,
Err(err) => {
eprintln!("Error: {err:?}");
return false;
}
};
now > expire
} }
} }
/*
type refreshTokenRequest struct {
AccessToken string `json:"access_token"`
}
func (a *Auth) GetRefreshToken(tok *token.Login) (*token.Login, error) {
req := refreshTokenRequest{AccessToken: tok.AccessToken}
jsonData, err := json.Marshal(req)
if err != nil {
return nil, err
}
resp, err := http.Post(fmt.Sprintf("%s/api/v1/token/refresh", a.Application.AuthUrl), "application/json", bytes.NewBuffer(jsonData))
if err != nil {
return nil, err
}
defer resp.Body.Close()
var r tokenResponse
err = json.NewDecoder(resp.Body).Decode(&r)
if err != nil {
return nil, err
} else {
if len(r.Data) == 0 {
return nil, nil
} else {
return r.Data[0], nil
}
}
}
func (s *Auth) TokenExpired(tok *token.Login) bool {
now := time.Now()
expiredTime := time.Unix(tok.ExpiresIn, 0)
if now.After(expiredTime) {
return true
} else {
return false
}
}
*
*/