@smbcloud / cli / commits / 40cbd3d

WIP

Seto Elkahfi committed Aug 20, 2023 at 15:05 UTC 40cbd3dc0c22fbc6bdc2f8a298e36dba6e4dbd05
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)