Skip to content

Commit fad4575

Browse files
committed
Merge branch 'feature/check-token-expiration' into development
* feature/check-token-expiration: fix is logged in checking refactor token module get_smb_token is not async refactor structure
2 parents 194a42a + 17bbc00 commit fad4575

File tree

25 files changed

+378
-309
lines changed

25 files changed

+378
-309
lines changed

crates/cli/src/account/lib.rs

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
1-
use crate::token::smb_token_file_path;
2-
use anyhow::{anyhow, Result};
3-
use console::style;
4-
use log::debug;
5-
use regex::Regex;
6-
use reqwest::{Client, Response, StatusCode};
7-
use smbcloud_model::account::SmbAuthorization;
8-
use smbcloud_network::environment::Environment;
9-
use smbcloud_networking::{
10-
constants::{
11-
GH_OAUTH_CLIENT_ID, GH_OAUTH_REDIRECT_HOST, GH_OAUTH_REDIRECT_PORT, PATH_AUTHORIZE,
1+
use {
2+
crate::token::smb_token_file_path::smb_token_file_path,
3+
anyhow::{anyhow, Result},
4+
console::style,
5+
log::debug,
6+
regex::Regex,
7+
reqwest::{Client, Response, StatusCode},
8+
smbcloud_model::account::SmbAuthorization,
9+
smbcloud_network::environment::Environment,
10+
smbcloud_networking::{
11+
constants::{
12+
GH_OAUTH_CLIENT_ID, GH_OAUTH_REDIRECT_HOST, GH_OAUTH_REDIRECT_PORT, PATH_AUTHORIZE,
13+
},
14+
smb_base_url_builder,
1215
},
13-
smb_base_url_builder,
14-
};
15-
use spinners::Spinner;
16-
use std::{
17-
fs::{create_dir_all, OpenOptions},
18-
io::{BufRead, BufReader, Write},
19-
net::{TcpListener, TcpStream},
20-
sync::mpsc::{self, Receiver, Sender},
16+
spinners::Spinner,
17+
std::{
18+
fs::{create_dir_all, OpenOptions},
19+
io::{BufRead, BufReader, Write},
20+
net::{TcpListener, TcpStream},
21+
sync::mpsc::{self, Receiver, Sender},
22+
},
23+
url_builder::URLBuilder,
2124
};
22-
use url_builder::URLBuilder;
2325

2426
pub async fn authorize_github(env: &Environment) -> Result<SmbAuthorization> {
2527
// Spin up a simple localhost server to listen for the GitHub OAuth callback

crates/cli/src/account/login/process.rs

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
use {
2-
crate::account::signup::signup_with_email,
3-
crate::account::{
4-
lib::{authorize_github, is_logged_in, save_token},
5-
signup::{do_signup, SignupMethod},
2+
crate::{
3+
account::{
4+
lib::{authorize_github, save_token},
5+
signup::{do_signup, signup_with_email, SignupMethod},
6+
},
7+
cli::CommandResult,
8+
token::is_logged_in::is_logged_in as is_logged_in_async,
9+
ui::{fail_message, fail_symbol, succeed_message, succeed_symbol},
610
},
7-
crate::cli::CommandResult,
8-
crate::ui::{fail_message, fail_symbol, succeed_message, succeed_symbol},
911
anyhow::{anyhow, Result},
1012
console::style,
1113
dialoguer::{console::Term, theme::ColorfulTheme, Confirm, Input, Password, Select},
@@ -30,9 +32,17 @@ use {
3032
spinners::Spinner,
3133
};
3234

33-
pub async fn process_login(env: Environment) -> Result<CommandResult> {
34-
// Check if token file exists
35-
if is_logged_in(env) {
35+
pub async fn process_login(env: Environment, is_logged_in: Option<bool>) -> Result<CommandResult> {
36+
let should_continue = match is_logged_in {
37+
Some(is_logged_id) => !is_logged_id,
38+
None => {
39+
// Check if logged in
40+
let logged_in = is_logged_in_async(env).await?;
41+
!logged_in
42+
}
43+
};
44+
45+
if !should_continue {
3646
return Ok(CommandResult {
3747
spinner: Spinner::new(
3848
spinners::Spinners::SimpleDotsScrolling,

crates/cli/src/account/logout/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::token::{get_smb_token, smb_token_file_path};
1+
use crate::token::{get_smb_token::get_smb_token, smb_token_file_path::smb_token_file_path};
22
use anyhow::{anyhow, Result};
33
use dialoguer::{theme::ColorfulTheme, Confirm};
44
use reqwest::{Client, StatusCode};
@@ -66,7 +66,7 @@ pub async fn process_logout(env: Environment) -> Result<CommandResult> {
6666
}
6767

6868
async fn do_process_logout(env: Environment) -> Result<()> {
69-
let token = get_smb_token(env).await?;
69+
let token = get_smb_token(env)?;
7070

7171
let response = Client::new()
7272
.delete(build_smb_logout_url(env))

crates/cli/src/account/me/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::account::lib::is_logged_in;
2-
use crate::token::get_smb_token;
2+
use crate::token::get_smb_token::get_smb_token;
33
use crate::{
44
cli::CommandResult,
55
ui::{fail_message, fail_symbol, succeed_message, succeed_symbol},
@@ -49,7 +49,7 @@ pub async fn process_me(env: Environment) -> Result<CommandResult> {
4949
spinners::Spinners::SimpleDotsScrolling,
5050
succeed_message("Loading"),
5151
);
52-
let token = get_smb_token(env).await?;
52+
let token = get_smb_token(env)?;
5353
match me(env, &token).await {
5454
Ok(user) => {
5555
spinner.stop_and_persist(&succeed_symbol(), succeed_message("Loaded."));

crates/cli/src/account/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use smbcloud_network::environment::Environment;
1515
pub async fn process_account(env: Environment, commands: Commands) -> Result<CommandResult> {
1616
match commands {
1717
Commands::Signup {} => process_signup(env).await,
18-
Commands::Login {} => process_login(env).await,
18+
Commands::Login {} => process_login(env, None).await,
1919
Commands::Logout {} => process_logout(env).await,
2020
Commands::Forgot {} => process_forgot(env).await,
2121
}

crates/cli/src/account/signup/process.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use super::SignupMethod;
2-
use crate::token::smb_token_file_path;
2+
use crate::token::smb_token_file_path::smb_token_file_path;
33
use crate::{
44
account::lib::authorize_github,
55
cli::CommandResult,

crates/cli/src/deploy/config.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use {
22
crate::{
3-
deploy::setup::setup_project,
3+
deploy::setup_project::setup_project,
44
ui::{fail_message, fail_symbol, succeed_message, succeed_symbol},
55
},
66
git2::{Cred, CredentialType, Error},

crates/cli/src/deploy/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@ mod detect_runner;
33
mod git;
44
pub mod process_deploy;
55
mod remote_messages;
6-
mod setup;
6+
pub(crate) mod setup_create_new_project;
7+
pub(crate) mod setup_project;
8+
pub(crate) mod setup_select_project;

crates/cli/src/deploy/process_deploy.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
use {
22
crate::{
3-
account::{lib::is_logged_in, login::process_login},
3+
account::login::process_login,
44
cli::CommandResult,
55
deploy::{
66
config::{check_config, check_project},
77
detect_runner::detect_runner,
88
git::remote_deployment_setup,
99
remote_messages::{build_next_app, start_server},
1010
},
11-
token::get_smb_token,
11+
token::{get_smb_token::get_smb_token, is_logged_in::is_logged_in},
1212
ui::{fail_message, succeed_message, succeed_symbol},
1313
},
1414
anyhow::{anyhow, Result},
@@ -28,12 +28,14 @@ use {
2828

2929
pub async fn process_deploy(env: Environment) -> Result<CommandResult> {
3030
// Check credentials.
31-
if !is_logged_in(env) {
32-
let _ = process_login(env).await;
31+
let is_logged_in = is_logged_in(env).await?;
32+
33+
if !is_logged_in {
34+
let _ = process_login(env, Some(is_logged_in)).await?;
3335
}
3436

3537
// Get current token
36-
let access_token = get_smb_token(env).await?;
38+
let access_token = get_smb_token(env)?;
3739

3840
// Check config.
3941
let config = check_config(env).await?;

crates/cli/src/deploy/setup.rs

Lines changed: 0 additions & 210 deletions
This file was deleted.

0 commit comments

Comments
 (0)