13 files changed
+41
-66
.env
.env.local
deleted
-3
@@ -1,3 +0,0 @@
1
-GH_OAUTH_CLIENT_ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2
-GH_OAUTH_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3
-GH_OAUTH_REDIRECT_URI=http://localhost:8808/
\ No newline at end of file
Cargo.lock
-22
@@ -269,24 +269,6 @@ dependencies = [
269
"winapi",
270
]
271
272
-[[package]]
273
-name = "dotenvy"
274
-version = "0.15.7"
275
-source = "registry+https://github.com/rust-lang/crates.io-index"
276
-checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
277
-
278
-[[package]]
279
-name = "dotenvy_macro"
280
-version = "0.15.7"
281
-source = "registry+https://github.com/rust-lang/crates.io-index"
282
-checksum = "cb0235d912a8c749f4e0c9f18ca253b4c28cfefc1d2518096016d6e3230b6424"
283
-dependencies = [
284
- "dotenvy",
285
- "proc-macro2",
286
- "quote",
287
- "syn 1.0.107",
288
-]
289
-
272
[[package]]
273
name = "encode_unicode"
274
version = "0.3.6"
@@ -1235,8 +1217,6 @@ dependencies = [
1217
"console",
1218
"dialoguer",
1219
"dirs",
1238
- "dotenvy",
1239
- "dotenvy_macro",
1220
"home",
1221
"log",
1222
"open",
@@ -1274,8 +1254,6 @@ dependencies = [
1254
"anyhow",
1255
"async-trait",
1256
"dirs",
1277
- "dotenvy",
1278
- "dotenvy_macro",
1257
"home",
1258
"log",
1259
"maybe-async",
smbpndk-cli/Cargo.toml
-2
@@ -22,8 +22,6 @@ clap_mangen = "0.2.10"
22
console = "0.15.0"
23
dialoguer = "0.10.4"
24
dirs = "4.0.0"
25
-dotenvy = "0.15"
26
-dotenvy_macro = "0.15"
25
home = "0.5.4"
26
log = "0.4.14"
27
open = "4.0.1"
smbpndk-cli/src/account/forgot/mod.rs
+9
-3
@@ -4,7 +4,7 @@ use dialoguer::{theme::ColorfulTheme, Input, Password};
4
use reqwest::{Client, StatusCode};
5
use serde::{Deserialize, Serialize};
6
use smbpndk_model::CommandResult;
7
-use smbpndk_networking::constants::BASE_URL;
7
+use smbpndk_networking::smb_base_url_builder;
8
use smbpndk_utils::email_validation;
9
use spinners::Spinner;
10
@@ -35,7 +35,7 @@ pub async fn process_forgot() -> Result<CommandResult> {
35
};
36
37
let response = Client::new()
38
- .post([BASE_URL, "/v1/users/password"].join(""))
38
+ .post(build_smb_forgot_url())
39
.json(¶ms)
40
.send()
41
.await?;
@@ -112,7 +112,7 @@ async fn input_code() -> Result<CommandResult> {
112
);
113
114
let response = Client::new()
115
- .put([BASE_URL, "/v1/users/password"].join(""))
115
+ .put(build_smb_forgot_url())
116
.json(¶ms)
117
.send()
118
.await?;
@@ -141,3 +141,9 @@ async fn input_code() -> Result<CommandResult> {
141
}),
142
}
143
}
144
+
145
+fn build_smb_forgot_url() -> String {
146
+ let mut url_builder = smb_base_url_builder();
147
+ url_builder.add_route("v1/users/password");
148
+ url_builder.build()
149
+}
smbpndk-cli/src/account/lib.rs
+7
-18
@@ -1,13 +1,15 @@
1
use super::{model::User, signup::GithubEmail};
2
use anyhow::{anyhow, Result};
3
use console::style;
4
-use dotenvy_macro::dotenv;
4
use log::debug;
5
use regex::Regex;
6
use reqwest::{Client, Response, StatusCode};
7
use serde::{Deserialize, Serialize};
8
use serde_repr::Deserialize_repr;
10
-use smbpndk_networking::smb_base_url_builder;
9
+use smbpndk_networking::{
10
+ constants::{GH_OAUTH_CLIENT_ID, GH_OAUTH_REDIRECT_HOST, GH_OAUTH_REDIRECT_PORT},
11
+ smb_base_url_builder,
12
+};
13
use spinners::Spinner;
14
use std::{
15
fmt::{Display, Formatter},
@@ -106,11 +108,7 @@ pub async fn authorize_github() -> Result<SmbAuthorization> {
108
}
109
110
fn setup_oauth_callback_server(tx: Sender<String>) {
109
- let port = dotenv!(
110
- "GH_OAUTH_REDIRECT_PORT",
111
- "Please set GH_OAUTH_REDIRECT_PORT"
112
- );
113
- let listener = TcpListener::bind(format!("127.0.0.1:{}", port)).unwrap();
111
+ let listener = TcpListener::bind(format!("127.0.0.1:{}", GH_OAUTH_REDIRECT_PORT)).unwrap();
112
for stream in listener.incoming() {
113
let stream = stream.unwrap();
114
handle_connection(stream, tx.clone());
@@ -221,22 +219,13 @@ fn build_github_oauth_url() -> String {
219
}
220
221
fn github_base_url_builder() -> URLBuilder {
224
- let client_id = dotenv!("GH_OAUTH_CLIENT_ID", "Please set GH_OAUTH_CLIENT_ID");
225
- let redirect_host = dotenv!(
226
- "GH_OAUTH_REDIRECT_HOST",
227
- "Please set GH_OAUTH_REDIRECT_HOST"
228
- );
229
- let redirect_port = dotenv!(
230
- "GH_OAUTH_REDIRECT_PORT",
231
- "Please set GH_OAUTH_REDIRECT_PORT"
232
- );
233
- let redirect_url = format!("{}:{}", &redirect_host, &redirect_port);
222
+ let redirect_url = format!("{}:{}", GH_OAUTH_REDIRECT_HOST, GH_OAUTH_REDIRECT_PORT);
223
224
let mut url_builder = URLBuilder::new();
225
url_builder
226
.set_protocol("https")
227
.set_host("github.com")
239
- .add_param("client_id", &client_id)
228
+ .add_param("client_id", GH_OAUTH_CLIENT_ID)
229
.add_param("redirect_uri", &redirect_url);
230
url_builder
231
}
smbpndk-cli/src/main.rs
-2
@@ -1,7 +1,6 @@
1
use anyhow::{anyhow, Result};
2
use clap::Parser;
3
use console::style;
4
-use dotenvy::dotenv;
4
use smbpndk_cli::{
5
account::process_account,
6
cli::{Cli, Commands},
@@ -62,7 +61,6 @@ fn setup_logging(level: Option<EnvFilter>) -> Result<()> {
61
62
#[tokio::main]
63
async fn main() {
65
- dotenv().ok();
64
match run().await {
65
Ok(result) => {
66
let mut spinner = result.spinner;
smbpndk-model/src/lib.rs
+1
-1
@@ -6,7 +6,7 @@ mod ar_date_format {
6
use chrono::{DateTime, TimeZone, Utc};
7
use serde::{self, Deserialize, Deserializer, Serializer};
8
9
- const FORMAT: &'static str = "%Y-%m-%dT%H:%M:%S%.f%#z";
9
+ const FORMAT: &str = "%Y-%m-%dT%H:%M:%S%.f%#z";
10
11
// The signature of a serialize_with function must follow the pattern:
12
//
smbpndk-networking-project/src/lib.rs
+1
-1
@@ -60,7 +60,7 @@ pub async fn get_project(id: String) -> Result<Project> {
60
match response.status() {
61
reqwest::StatusCode::OK => {
62
let project: Project = response.json().await?;
63
- println!("Project requested: {project:#?}");
63
+ //println!("Project requested: {project:#?}");
64
Ok(project)
65
}
66
_ => Err(anyhow!("Failed to request a project.")),
smbpndk-networking/.env
smbpndk-networking/Cargo.toml
-2
@@ -15,8 +15,6 @@ categories = ["command-line-utilities", "command-line-interface", "cryptography:
15
anyhow = "1.0.58"
16
async-trait = { version = "0.1.51", optional = true }
17
dirs = "4.0.0"
18
-dotenvy = "0.15"
19
-dotenvy_macro = "0.15"
18
home = "0.5.4"
19
log = "0.4.14"
20
maybe-async = { version = "0.2", features = ["is_sync"] }
smbpndk-networking/src/constants.rs
+18
-3
@@ -1,7 +1,22 @@
1
+pub const TOKEN_PATH_STR: &str = ".smb/token";
2
+
3
#[cfg(debug_assertions)]
2
-pub const BASE_URL: &str = "http://localhost:3000/";
4
+pub const GH_OAUTH_CLIENT_ID: &str = "053e152f1b78ecee552b";
5
+#[cfg(not(debug_assertions))]
6
+pub const GH_OAUTH_CLIENT_ID: &str = "bf1f12d97659a6495e43";
7
+
8
+pub const GH_OAUTH_REDIRECT_HOST: &str = "http://localhost";
9
+pub const GH_OAUTH_REDIRECT_PORT: &str = "8808";
10
+
11
+pub const SMB_CLIENT_ID: &str = "cli";
12
+pub const SMB_CLIENT_SECRET: &str = "secretttttttt";
13
14
+#[cfg(debug_assertions)]
15
+pub const SMB_API_PROTOCOL: &str = "http";
16
#[cfg(not(debug_assertions))]
5
-pub const BASE_URL: &str = "https://api.smbpndk.com/";
17
+pub const SMB_API_PROTOCOL: &str = "https";
18
7
-pub const TOKEN_PATH_STR: &str = ".smb/token";
19
+#[cfg(debug_assertions)]
20
+pub const SMB_API_HOST: &str = "localhost:8088";
21
+#[cfg(not(debug_assertions))]
22
+pub const SMB_API_HOST: &str = "api.smbpndk.com";
smbpndk-networking/src/lib.rs
+5
-9
@@ -2,7 +2,7 @@ pub mod constants;
2
3
use crate::constants::TOKEN_PATH_STR;
4
use anyhow::{anyhow, Result};
5
-use dotenvy_macro::dotenv;
5
+use constants::{SMB_API_HOST, SMB_API_PROTOCOL, SMB_CLIENT_ID, SMB_CLIENT_SECRET};
6
use log::debug;
7
use std::path::PathBuf;
8
use url_builder::URLBuilder;
@@ -36,15 +36,11 @@ pub fn smb_token_file_path() -> Option<PathBuf> {
36
}
37
38
pub fn smb_base_url_builder() -> URLBuilder {
39
- let client_id = dotenv!("SMB_CLIENT_ID", "Please set SMB_CLIENT_ID");
40
- let client_secret = dotenv!("SMB_CLIENT_SECRET", "Please set SMB_CLIENT_SECRET");
41
- let api_host = dotenv!("SMB_API_HOST", "Please set SMB_API_HOST");
42
- let api_protocol = dotenv!("SMB_API_PROTOCOL", "Please set SMB_API_PROTOCOL");
39
let mut url_builder = URLBuilder::new();
40
url_builder
45
- .set_protocol(&api_protocol)
46
- .set_host(&api_host)
47
- .add_param("client_id", &client_id)
48
- .add_param("client_secret", &client_secret);
41
+ .set_protocol(SMB_API_PROTOCOL)
42
+ .set_host(SMB_API_HOST)
43
+ .add_param("client_id", SMB_CLIENT_ID)
44
+ .add_param("client_secret", SMB_CLIENT_SECRET);
45
url_builder
46
}