Completely replace implementation #1
@@ -148,6 +148,7 @@ mod tests {
|
||||
- Use `cargo fmt` for formatting
|
||||
- Use `cargo clippy` for linting
|
||||
- Ensure documentation for public APIs
|
||||
- _ALWAYS_ format and lint after making a change, and fix the linting errors
|
||||
|
||||
### 4. Commit Standards
|
||||
- Commit both code and tests together
|
||||
|
||||
@@ -119,12 +119,11 @@ impl TransactionSource for GoCardlessAdapter {
|
||||
}
|
||||
|
||||
// Optimization: Stop if we found all wanted accounts
|
||||
if let Some(_) = wanted_set {
|
||||
if found_count >= target_count && target_count > 0 {
|
||||
if wanted_set.is_some()
|
||||
&& found_count >= target_count && target_count > 0 {
|
||||
info!("Found all {} wanted accounts. Stopping search.", target_count);
|
||||
return Ok(accounts);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,21 +166,19 @@ async fn process_single_account(
|
||||
if dry_run {
|
||||
info!("[DRY RUN] Would create transaction {}", tx.internal_id);
|
||||
stats.created += 1;
|
||||
} else {
|
||||
if let Err(e) = destination.create_transaction(&dest_id, &tx).await {
|
||||
// Firefly might still reject it as duplicate if hash matches, even if we didn't find it via heuristic
|
||||
// (unlikely if heuristic is good, but possible)
|
||||
let err_str = e.to_string();
|
||||
if err_str.contains("422") || err_str.contains("Duplicate") {
|
||||
warn!("Duplicate rejected by Firefly: {}", tx.internal_id);
|
||||
stats.duplicates += 1;
|
||||
} else {
|
||||
tracing::error!("Failed to create transaction: {}", e);
|
||||
stats.errors += 1;
|
||||
}
|
||||
} else if let Err(e) = destination.create_transaction(&dest_id, &tx).await {
|
||||
// Firefly might still reject it as duplicate if hash matches, even if we didn't find it via heuristic
|
||||
// (unlikely if heuristic is good, but possible)
|
||||
let err_str = e.to_string();
|
||||
if err_str.contains("422") || err_str.contains("Duplicate") {
|
||||
warn!("Duplicate rejected by Firefly: {}", tx.internal_id);
|
||||
stats.duplicates += 1;
|
||||
} else {
|
||||
stats.created += 1;
|
||||
tracing::error!("Failed to create transaction: {}", e);
|
||||
stats.errors += 1;
|
||||
}
|
||||
} else {
|
||||
stats.created += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user