4 files changed
+28
-19
smbpndk-cli/src/account/lib.rs
+11
-12
@@ -1,19 +1,20 @@
1
+use anyhow::{anyhow, Result};
2
use console::style;
3
use log::debug;
4
+use regex::Regex;
5
use reqwest::{Client, StatusCode};
6
use serde::{Deserialize, Serialize};
7
use smbpndk_model::CommandResult;
8
use spinners::Spinner;
7
-use anyhow::{anyhow, Result};
8
-use url_builder::URLBuilder;
9
use std::{
10
+ env,
11
fmt::{Display, Formatter},
12
fs,
13
io::{BufRead, BufReader, Write},
14
net::{TcpListener, TcpStream},
14
- sync::mpsc::{self, Receiver, Sender}, env,
15
+ sync::mpsc::{self, Receiver, Sender},
16
};
16
-use regex::Regex;
17
+use url_builder::URLBuilder;
18
19
// This is smb authorization model.
20
#[derive(Debug, Serialize, Deserialize)]
@@ -115,7 +116,6 @@ fn handle_connection(mut stream: TcpStream, tx: Sender<String>) {
116
stream.flush().unwrap();
117
}
118
118
-
119
// Get access token
120
pub async fn process_connect_github(code: String) -> Result<SmbAuthorization> {
121
let response = Client::new()
@@ -163,10 +163,8 @@ fn build_github_oauth_url() -> String {
163
}
164
165
fn smb_base_url_builder() -> URLBuilder {
166
- let client_id =
167
- env::var("SMB_CLIENT_ID").expect("Please set SMB_CLIENT_ID");
168
- let client_secret =
169
- env::var("SMB_CLIENT_SECRET").expect("Please set SMB_CLIENT_SECRET");
166
+ let client_id = env::var("SMB_CLIENT_ID").expect("Please set SMB_CLIENT_ID");
167
+ let client_secret = env::var("SMB_CLIENT_SECRET").expect("Please set SMB_CLIENT_SECRET");
168
let mut url_builder = URLBuilder::new();
169
url_builder
170
.set_protocol("https")
@@ -179,8 +177,9 @@ fn smb_base_url_builder() -> URLBuilder {
177
fn github_base_url_builder() -> URLBuilder {
178
let client_id = env::var("GH_OAUTH_CLIENT_ID").expect("Please set GH_OAUTH_CLIENT_ID");
179
let redirect_host =
182
- env::var("GH_OAUTH_REDIRECT_HOST").expect("Please set GH_OAUTH_REDIRECT_HOST");
183
- let redirect_port = env::var("GH_OAUTH_REDIRECT_PORT").expect("Please set GH_OAUTH_REDIRECT_PORT");
180
+ env::var("GH_OAUTH_REDIRECT_HOST").expect("Please set GH_OAUTH_REDIRECT_HOST");
181
+ let redirect_port =
182
+ env::var("GH_OAUTH_REDIRECT_PORT").expect("Please set GH_OAUTH_REDIRECT_PORT");
183
let redirect_url = format!("{}:{}", &redirect_host, &redirect_port);
184
185
let mut url_builder = URLBuilder::new();
@@ -190,4 +189,4 @@ fn github_base_url_builder() -> URLBuilder {
189
.add_param("client_id", &client_id)
190
.add_param("redirect_uri", &redirect_url);
191
url_builder
193
-}
\ No newline at end of file
192
+}
smbpndk-cli/src/account/login/process.rs
+6
-2
@@ -1,4 +1,8 @@
1
-use crate::account::{model::{Data, Status, User}, signup::SignupMethod, lib::authorize_github};
1
+use crate::account::{
2
+ lib::authorize_github,
3
+ model::{Data, Status, User},
4
+ signup::SignupMethod,
5
+};
6
use anyhow::{anyhow, Result};
7
use console::{style, Term};
8
use dialoguer::{theme::ColorfulTheme, Input, Password, Select};
@@ -57,7 +61,7 @@ async fn login_with_github() -> Result<CommandResult> {
61
symbol: "✅".to_owned(),
62
msg: "You are logged in!".to_owned(),
63
})
60
- },
64
+ }
65
Err(_) => {
66
let error = anyhow!("Failed to login with GitHub.");
67
Err(error)
smbpndk-cli/src/account/mod.rs
+1
-1
@@ -1,9 +1,9 @@
1
pub mod cli;
2
pub mod forgot;
3
+pub mod lib;
4
pub mod login;
5
pub mod model;
6
pub mod signup;
6
-pub mod lib;
7
8
use self::{
9
cli::Commands,
smbpndk-cli/src/account/signup/process.rs
+10
-4
@@ -1,10 +1,13 @@
1
-use crate::account::{model::{Data, Status, User}, lib::{process_connect_github, authorize_github}};
1
+use crate::account::{
2
+ lib::{authorize_github, process_connect_github},
3
+ model::{Data, Status, User},
4
+};
5
use anyhow::{anyhow, Result};
6
use console::{style, Term};
7
use dialoguer::{theme::ColorfulTheme, Input, Password, Select};
8
use log::debug;
9
use reqwest::{Client, StatusCode};
7
-use serde::{Deserialize, Serialize, de};
10
+use serde::{de, Deserialize, Serialize};
11
use smbpndk_model::CommandResult;
12
use smbpndk_networking::constants::BASE_URL;
13
use smbpndk_utils::email_validation;
@@ -97,12 +100,15 @@ async fn signup_with_github() -> Result<CommandResult> {
100
Ok(CommandResult {
101
spinner: Spinner::new(
102
spinners::Spinners::BouncingBall,
100
- style("Requesting GitHub token...").green().bold().to_string(),
103
+ style("Requesting GitHub token...")
104
+ .green()
105
+ .bold()
106
+ .to_string(),
107
),
108
symbol: style("✅".to_string()).for_stderr().green().to_string(),
109
msg: "Finished requesting GitHub token!".to_owned(),
110
})
105
- },
111
+ }
112
Err(e) => {
113
let error = anyhow!("Failed to get code from channel: {e}");
114
Err(error)