diff options
| -rw-r--r-- | src/apply.rs | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/src/apply.rs b/src/apply.rs index 86e92b4..8a94642 100644 --- a/src/apply.rs +++ b/src/apply.rs @@ -54,33 +54,32 @@ where R: IntoIterator<Item = ResourceRecordSet>, I: IntoIterator<Item = ResourceRecordSet>, { - let mut change_batch = ChangeBatch::builder(); - for remove_record in remove_records { - let change = Change::builder() - .action(ChangeAction::Delete) - .resource_record_set(remove_record) - .build(); - change_batch = change_batch.changes(change); - } - for insert_record in insert_records { - let change = Change::builder() - .action(ChangeAction::Create) - .resource_record_set(insert_record) + let remove_records = remove_records.into_iter().map(|record| { + Change::builder() + .action(ChangeAction::Delete) // <-- + .resource_record_set(record) + .build() + }); + let insert_records = insert_records.into_iter().map(|record| { + Change::builder() + .action(ChangeAction::Create) // <-- + .resource_record_set(record) + .build() + }); + + let change_records: Vec<_> = remove_records.chain(insert_records).collect(); + if !change_records.is_empty() { + let change_batch = ChangeBatch::builder() + .set_changes(Some(change_records)) .build(); - change_batch = change_batch.changes(change); - } - let change_batch = change_batch.build(); - if let Some(changes) = change_batch.changes() { - if !changes.is_empty() { - aws_context - .route53() - .change_resource_record_sets() - .hosted_zone_id(zone_id) - .change_batch(change_batch) - .send() - .await?; - } + aws_context + .route53() + .change_resource_record_sets() + .hosted_zone_id(zone_id) + .change_batch(change_batch) + .send() + .await?; } Ok(()) |
