Get token #8
+16
-10
@@ -30,21 +30,27 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
||||
let mut svc = catapult::service::core::Service {
|
||||
app: app.clone(),
|
||||
// Use a pointer
|
||||
token: token.clone(),
|
||||
token: token,
|
||||
};
|
||||
|
||||
loop {
|
||||
// catapult::service::do_the_work(&app).await;
|
||||
let refresh_token = match auth.get_refresh_token(&token).await {
|
||||
Ok(refresh) => refresh,
|
||||
Err(err) => {
|
||||
eprintln!("Error: {err:?}");
|
||||
std::process::exit(-1);
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
};
|
||||
println!("Refresh token: {refresh_token:?}");
|
||||
}
|
||||
|
||||
svc.do_the_work().await;
|
||||
|
||||
tokio::time::sleep(tokio::time::Duration::from_secs(
|
||||
catapult::app::SECONDS_TO_SLEEP,
|
||||
))
|
||||
|
||||
+10
-48
@@ -112,53 +112,15 @@ pub mod auth {
|
||||
}
|
||||
|
||||
pub async fn has_token_expired(token: &textsender_models::token::LoginResult) -> bool {
|
||||
todo!("Need to finish this");
|
||||
false
|
||||
let now = time::OffsetDateTime::now_utc();
|
||||
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
|
||||
}
|
||||
}
|
||||
*
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user