Skip to content

Commit

Permalink
style fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
alexsavio committed Apr 3, 2024
1 parent 1a98d99 commit 3988725
Show file tree
Hide file tree
Showing 15 changed files with 47 additions and 44 deletions.
2 changes: 1 addition & 1 deletion build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
fn main() {
// trigger recompilation when a new migration is added
println!("cargo:rerun-if-changed=migrations");
}
}
4 changes: 4 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ test:
testv:
RUST_BACKTRACE=1 cargo test -- --nocapture

## Format the code
format:
cargo fmt

## Run the linter
lint:
cargo check
Expand Down
17 changes: 10 additions & 7 deletions src/configuration.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
use secrecy::{ExposeSecret, Secret};
use sqlx::postgres::{PgConnectOptions, PgSslMode};
use serde_aux::field_attributes::deserialize_number_from_string;
use sqlx::postgres::{PgConnectOptions, PgSslMode};

use crate::domain::SubscriberEmail;


#[derive(Clone, serde::Deserialize)]
pub struct Settings {
pub database: DatabaseSettings,
Expand Down Expand Up @@ -49,13 +48,17 @@ pub fn get_configuration() -> Result<Settings, config::ConfigError> {
.expect("Failed to parse APP_ENVIRONMENT");
let environment_filename = format!("{}.yaml", environment.as_str());
let settings = config::Config::builder()
.add_source(config::File::from(
configuration_directory.join("base.yaml"),
))
.add_source(config::File::from(
configuration_directory.join(environment_filename),
))
.add_source(
config::File::from(configuration_directory.join("base.yaml"))
)
.add_source(
config::File::from(configuration_directory.join(environment_filename))
config::Environment::with_prefix("APP")
.separator("__")
.prefix_separator("_"),
)
.add_source(config::Environment::with_prefix("APP").separator("__").prefix_separator("_"))
.build()?;
// Try to convert the configuration reader into our Settings type
settings.try_deserialize::<Settings>()
Expand Down
4 changes: 2 additions & 2 deletions src/domain/mod.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
mod new_subscriber;
mod subscriber_email;
mod subscriber_name;
mod new_subscriber;

pub use new_subscriber::NewSubscriber;
pub use subscriber_email::SubscriberEmail;
pub use subscriber_name::SubscriberName;
pub use new_subscriber::NewSubscriber;
3 changes: 1 addition & 2 deletions src/domain/new_subscriber.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@

use crate::domain::subscriber_name::SubscriberName;
use crate::domain::subscriber_email::SubscriberEmail;
use crate::domain::subscriber_name::SubscriberName;

pub struct NewSubscriber {
pub email: SubscriberEmail,
Expand Down
7 changes: 3 additions & 4 deletions src/domain/subscriber_email.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ impl SubscriberEmail {
pub fn parse(s: String) -> Result<SubscriberEmail, String> {
if validate_email(&s) {
Ok(Self(s))
}
else {
} else {
Err(format!("{} is not a valid email address.", s))
}
}
Expand All @@ -22,11 +21,11 @@ impl AsRef<str> for SubscriberEmail {

#[cfg(test)]
mod tests {
use crate::domain::SubscriberEmail;
use claims::assert_err;
use fake::faker::internet::en::SafeEmail;
use fake::Fake;
use rand::{rngs::StdRng, SeedableRng};
use claims::assert_err;
use crate::domain::SubscriberEmail;

#[test]
fn empty_string_is_rejected() {
Expand Down
4 changes: 1 addition & 3 deletions src/domain/subscriber_name.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ impl SubscriberName {
let contains_forbidden_characters = s.chars().any(|c| forbidden_characters.contains(&c));
if is_empty_or_whitespace || is_too_long || contains_forbidden_characters {
Err(format!("{} is not a valid subscriber name.", s))
}
else {
} else {
Ok(Self(s))
}
}
Expand All @@ -24,7 +23,6 @@ impl AsRef<str> for SubscriberName {
}
}


#[cfg(test)]
mod tests {
use crate::domain::SubscriberName;
Expand Down
5 changes: 1 addition & 4 deletions src/email_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,7 @@ impl EmailClient {
timeout: std::time::Duration,
) -> Self {
let base_url = Url::parse(&base_url).expect("Invalid base URL for email client.");
let http_client = Client::builder()
.timeout(timeout)
.build()
.unwrap();
let http_client = Client::builder().timeout(timeout).build().unwrap();
Self {
http_client,
base_url,
Expand Down
4 changes: 1 addition & 3 deletions src/main.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
use zero2prod::startup::Application;
use zero2prod::configuration::get_configuration;
use zero2prod::startup::Application;
use zero2prod::telemetry::{get_subscriber, init_subscriber};


#[tokio::main]
async fn main() -> Result<(), std::io::Error> {
// setup tracing
Expand All @@ -15,4 +14,3 @@ async fn main() -> Result<(), std::io::Error> {
server.run_until_stopped().await?;
Ok(())
}

2 changes: 1 addition & 1 deletion src/routes/health_check.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use actix_web::{Responder, HttpResponse};
use actix_web::{HttpResponse, Responder};

pub async fn health_check() -> impl Responder {
HttpResponse::Ok()
Expand Down
7 changes: 2 additions & 5 deletions src/routes/subscriptions_confirm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,12 @@ pub async fn confirm(parameters: web::Query<Parameters>, pool: web::Data<PgPool>
return HttpResponse::InternalServerError().finish();
}
HttpResponse::Ok().finish()
},
}
None => return HttpResponse::Unauthorized().finish(),
}
}

pub async fn confirm_subscriber(
pool: &PgPool,
subscriber_id: Uuid,
) -> Result<(), sqlx::Error> {
pub async fn confirm_subscriber(pool: &PgPool, subscriber_id: Uuid) -> Result<(), sqlx::Error> {
sqlx::query!(
r#"
UPDATE subscriptions
Expand Down
2 changes: 1 addition & 1 deletion src/startup.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::configuration::{DatabaseSettings, Settings};
use crate::email_client::EmailClient;
use crate::routes::{health_check, subscribe, confirm};
use crate::routes::{confirm, health_check, subscribe};
use actix_web::dev::Server;
use actix_web::{web, App, HttpServer};
use sqlx::postgres::PgPoolOptions;
Expand Down
17 changes: 9 additions & 8 deletions tests/api/helpers.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
use once_cell::sync::Lazy;
use sqlx::{Connection, Executor, PgConnection, PgPool};
use sqlx::postgres::PgPoolOptions;
use sqlx::{Connection, Executor, PgConnection, PgPool};
use uuid::Uuid;
use wiremock::MockServer;
use zero2prod::configuration::{DatabaseSettings, get_configuration};
use zero2prod::startup::{Application, get_connection_pool};
use zero2prod::configuration::{get_configuration, DatabaseSettings};
use zero2prod::startup::{get_connection_pool, Application};
use zero2prod::telemetry::{get_subscriber, init_subscriber};

pub struct TestApp {
Expand Down Expand Up @@ -91,7 +91,9 @@ pub async fn spawn_app() -> TestApp {
configure_database(&configuration.database).await;

// Launch the application as a background task
let application = Application::build(configuration.clone()).await.expect("Failed to build application.");
let application = Application::build(configuration.clone())
.await
.expect("Failed to build application.");
let application_port = application.port();
let address = format!("http://localhost:{}", application_port);
let _ = tokio::spawn(application.run_until_stopped());
Expand All @@ -105,10 +107,9 @@ pub async fn spawn_app() -> TestApp {

async fn configure_database(config: &DatabaseSettings) -> PgPool {
// Create database
let mut connection =
PgConnection::connect_with(&config.without_db())
.await
.expect("Failed to connect to Postgres");
let mut connection = PgConnection::connect_with(&config.without_db())
.await
.expect("Failed to connect to Postgres");
connection
.execute(&*format!(r#"CREATE DATABASE "{}";"#, config.name))
.await
Expand Down
2 changes: 1 addition & 1 deletion tests/api/main.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
mod helpers;
mod health_check;
mod helpers;
mod subscriptions;
mod subscriptions_confirm;
11 changes: 9 additions & 2 deletions tests/api/subscriptions_confirm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,10 @@ async fn the_link_returned_by_subscribe_returns_a_200_if_called() {

assert_eq!(confirmation_links.html, confirmation_links.plain_text);
assert_eq!(confirmation_links.html.host_str().unwrap(), "127.0.0.1");
assert_eq!(confirmation_links.plain_text.host_str().unwrap(), "127.0.0.1");
assert_eq!(
confirmation_links.plain_text.host_str().unwrap(),
"127.0.0.1"
);

let mut confirmation_link = confirmation_links.html.clone();
confirmation_link.set_port(Some(app.port)).unwrap();
Expand Down Expand Up @@ -67,7 +70,11 @@ async fn clicking_on_the_confirmation_link_confirms_a_subscriber() {
confirmation_link.set_port(Some(app.port)).unwrap();

// Act
reqwest::get(confirmation_link).await.unwrap().error_for_status().unwrap();
reqwest::get(confirmation_link)
.await
.unwrap()
.error_for_status()
.unwrap();

// Assert
let saved = sqlx::query!("SELECT email, name, status FROM subscriptions",)
Expand Down

0 comments on commit 3988725

Please sign in to comment.