Skip to content

Commit 656346b

Browse files
committed
refactor: Let connection_parameters_as_url_query_parameters return Option<String>
1 parent 62c019d commit 656346b

3 files changed

Lines changed: 19 additions & 15 deletions

File tree

crates/stackable-operator/src/databases/databases/mysql.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ impl JdbcDatabaseConnection for MysqlConnection {
6868

6969
let connection_uri = format!(
7070
"jdbc:mysql://{host}:{port}/{database}{parameters}",
71-
parameters = connection_parameters_as_url_query_parameters(parameters)
71+
parameters =
72+
connection_parameters_as_url_query_parameters(parameters).unwrap_or_default()
7273
);
7374
let connection_uri = connection_uri.parse().context(ParseConnectionUrlSnafu)?;
7475

crates/stackable-operator/src/databases/databases/postgresql.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ impl JdbcDatabaseConnection for PostgresqlConnection {
7272

7373
let connection_uri = format!(
7474
"jdbc:postgresql://{host}:{port}/{database}{parameters}",
75-
parameters = connection_parameters_as_url_query_parameters(parameters)
75+
parameters =
76+
connection_parameters_as_url_query_parameters(parameters).unwrap_or_default()
7677
);
7778
let connection_uri = connection_uri.parse().context(ParseConnectionUrlSnafu)?;
7879

@@ -102,7 +103,8 @@ impl SqlAlchemyDatabaseConnection for PostgresqlConnection {
102103
username_and_password_envs(unique_database_name, credentials_secret);
103104
let username_env_name = &username_env.name;
104105
let password_env_name = &password_env.name;
105-
let parameters = connection_parameters_as_url_query_parameters(parameters);
106+
let parameters =
107+
connection_parameters_as_url_query_parameters(parameters).unwrap_or_default();
106108

107109
let uri_template = match templating_mechanism {
108110
TemplatingMechanism::ConfigUtils => format!(
@@ -138,7 +140,8 @@ impl CeleryDatabaseConnection for PostgresqlConnection {
138140
username_and_password_envs(unique_database_name, credentials_secret);
139141
let username_env_name = &username_env.name;
140142
let password_env_name = &password_env.name;
141-
let parameters = connection_parameters_as_url_query_parameters(parameters);
143+
let parameters =
144+
connection_parameters_as_url_query_parameters(parameters).unwrap_or_default();
142145

143146
let uri_template = match templating_mechanism {
144147
TemplatingMechanism::ConfigUtils => format!(

crates/stackable-operator/src/databases/helpers.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,19 @@ pub fn username_and_password_env_names(unique_database_name: &str) -> (String, S
3232

3333
/// Returns
3434
///
35-
/// * If no params are defined: ""
36-
/// * If params are defined: "?key=value&foo=bar"
35+
/// * [`None`] if no connection parameters are defined.
36+
/// * `?key1=value1&key2=value2` if connection parameters are defined.
3737
pub fn connection_parameters_as_url_query_parameters(
3838
parameters: &BTreeMap<String, String>,
39-
) -> String {
39+
) -> Option<String> {
4040
if parameters.is_empty() {
41-
String::new()
42-
} else {
43-
let parameters = parameters
44-
.iter()
45-
.map(|(k, v)| format!("{k}={v}"))
46-
.collect::<Vec<_>>()
47-
.join("&");
48-
format!("?{parameters}")
41+
return None;
4942
}
43+
44+
let parameters = parameters
45+
.iter()
46+
.map(|(k, v)| format!("{k}={v}"))
47+
.collect::<Vec<_>>()
48+
.join("&");
49+
Some(format!("?{parameters}"))
5050
}

0 commit comments

Comments
 (0)