Skip to content

Commit e78cadd

Browse files
committed
feat: improve CI build process and refactor Redis cache logic
- Add release build step to CI workflow for better testing coverage - Refactor nested if-let chains to improve code readability in email validation caching
1 parent 453ee9b commit e78cadd

2 files changed

Lines changed: 10 additions & 5 deletions

File tree

.github/workflows/ci.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,12 @@ jobs:
2727
- name: Cache dependencies
2828
uses: Swatinem/rust-cache@v2
2929

30-
- name: Build Project
30+
- name: Build Project (Debug)
3131
run: cargo build --verbose
3232

33+
- name: Build Project (Release)
34+
run: cargo build --release --verbose
35+
3336
- name: Run Tests with Coverage
3437
run: |
3538
cargo test --verbose

src/graphql/email.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,19 +102,20 @@ impl EmailQuery {
102102

103103
let cached: Option<String> = conn.get(&cache_key).ok();
104104

105-
if let Some(cached_str) = cached
106-
&& let Ok(cached_response) =
105+
if let Some(cached_str) = cached {
106+
if let Ok(cached_response) =
107107
serde_json::from_str::<CachedValidationResponse>(&cached_str)
108108
{
109109
return Some(cached_response.into());
110110
}
111+
}
111112
}
112113
None
113114
}
114115

115116
async fn cache_result(&self, email: &str, result: &EmailValidationResponse) {
116-
if let Some(client) = &self.redis_client
117-
&& let Ok(mut conn) = client.get_connection() {
117+
if let Some(client) = &self.redis_client {
118+
if let Ok(mut conn) = client.get_connection() {
118119
let cache_key = format!("email:validation:{}", email);
119120
let cached_response: CachedValidationResponse = (*result).clone().into();
120121

@@ -123,6 +124,7 @@ impl EmailQuery {
123124
conn.set_ex(&cache_key, json, self.cache_ttl as usize);
124125
}
125126
}
127+
}
126128
}
127129
}
128130

0 commit comments

Comments
 (0)