Update all dependencies

This commit is contained in:
Luca P 2022-07-05 17:47:21 +01:00
parent 896ac7a9c2
commit 1dcad004df
5 changed files with 392 additions and 528 deletions

879
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -16,9 +16,9 @@ name = "zero2prod"
actix-web = "4" actix-web = "4"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] } tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
serde = "1.0.115" serde = "1.0.115"
config = { version = "0.11", default-features = false, features = ["yaml"] } config = { version = "0.13", default-features = false, features = ["yaml"] }
sqlx = { version = "0.5.5", default-features = false, features = [ "runtime-actix-rustls", "macros", "postgres", "uuid", "chrono", "migrate", "offline"] } sqlx = { version = "0.6", default-features = false, features = ["runtime-actix-rustls", "macros", "postgres", "uuid", "chrono", "migrate", "offline"] }
uuid = { version = "0.8.1", features = ["v4"] } uuid = { version = "1", features = ["v4"] }
chrono = "0.4.15" chrono = "0.4.15"
reqwest = { version = "0.11", default-features = false, features = ["json", "rustls-tls"] } reqwest = { version = "0.11", default-features = false, features = ["json", "rustls-tls"] }
log = "0.4" log = "0.4"
@ -29,10 +29,10 @@ tracing-log = "0.1.1"
thiserror = "1.0.24" thiserror = "1.0.24"
serde-aux = "3" serde-aux = "3"
unicode-segmentation = "1.7.1" unicode-segmentation = "1.7.1"
validator = "0.14.0"
rand = { version = "0.8", features=["std_rng"] } rand = { version = "0.8", features=["std_rng"] }
anyhow = "1.0.40" anyhow = "1.0.40"
tracing-actix-web = "0.5" validator = "0.15.0"
tracing-actix-web = "0.6"
secrecy = { version = "0.8", features = ["serde"] } secrecy = { version = "0.8", features = ["serde"] }
[dev-dependencies] [dev-dependencies]

View file

@ -10,7 +10,7 @@ fi
if ! [ -x "$(command -v sqlx)" ]; then if ! [ -x "$(command -v sqlx)" ]; then
echo >&2 "Error: sqlx is not installed." echo >&2 "Error: sqlx is not installed."
echo >&2 "Use:" echo >&2 "Use:"
echo >&2 " cargo install --version=0.5.5 sqlx-cli --no-default-features --features postgres" echo >&2 " cargo install --version=0.6.0 sqlx-cli --no-default-features --features postgres"
echo >&2 "to install it." echo >&2 "to install it."
exit 1 exit 1
fi fi
@ -19,7 +19,7 @@ fi
DB_USER="${POSTGRES_USER:=postgres}" DB_USER="${POSTGRES_USER:=postgres}"
# Check if a custom password has been set, otherwise default to 'password' # Check if a custom password has been set, otherwise default to 'password'
DB_PASSWORD="${POSTGRES_PASSWORD:=password}" DB_PASSWORD="${POSTGRES_PASSWORD:=password}"
# Check if a custom password has been set, otherwise default to 'newsletter' # Check if a custom database name has been set, otherwise default to 'newsletter'
DB_NAME="${POSTGRES_DB:=newsletter}" DB_NAME="${POSTGRES_DB:=newsletter}"
# Check if a custom port has been set, otherwise default to '5432' # Check if a custom port has been set, otherwise default to '5432'
DB_PORT="${POSTGRES_PORT:=5432}" DB_PORT="${POSTGRES_PORT:=5432}"

View file

@ -72,30 +72,25 @@ impl EmailClientSettings {
} }
pub fn get_configuration() -> Result<Settings, config::ConfigError> { pub fn get_configuration() -> Result<Settings, config::ConfigError> {
let mut settings = config::Config::default();
let base_path = std::env::current_dir().expect("Failed to determine the current directory"); let base_path = std::env::current_dir().expect("Failed to determine the current directory");
let configuration_directory = base_path.join("configuration"); let configuration_directory = base_path.join("configuration");
// Read the "default" configuration file
settings.merge(config::File::from(configuration_directory.join("base")).required(true))?;
// Detect the running environment. // Detect the running environment.
// Default to `local` if unspecified. // Default to `local` if unspecified.
let environment: Environment = std::env::var("APP_ENVIRONMENT") let environment: Environment = std::env::var("APP_ENVIRONMENT")
.unwrap_or_else(|_| "local".into()) .unwrap_or_else(|_| "local".into())
.try_into() .try_into()
.expect("Failed to parse APP_ENVIRONMENT."); .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 in settings from environment variables (with a prefix of APP and '__' as separator)
// E.g. `APP_APPLICATION__PORT=5001 would set `Settings.application.port`
.add_source(config::Environment::with_prefix("APP").prefix_separator("_").separator("__"))
.build()?;
// Layer on the environment-specific values. settings.try_deserialize::<Settings>()
settings.merge(
config::File::from(configuration_directory.join(environment.as_str())).required(true),
)?;
// Add in settings from environment variables (with a prefix of APP and '__' as separator)
// E.g. `APP_APPLICATION__PORT=5001 would set `Settings.application.port`
settings.merge(config::Environment::with_prefix("app").separator("__"))?;
settings.try_into()
} }
/// The possible runtime environment for our application. /// The possible runtime environment for our application.

View file

@ -56,7 +56,7 @@ impl Application {
pub fn get_connection_pool(configuration: &DatabaseSettings) -> PgPool { pub fn get_connection_pool(configuration: &DatabaseSettings) -> PgPool {
PgPoolOptions::new() PgPoolOptions::new()
.connect_timeout(std::time::Duration::from_secs(2)) .acquire_timeout(std::time::Duration::from_secs(2))
.connect_lazy_with(configuration.with_db()) .connect_lazy_with(configuration.with_db())
} }