Skip to content

Commit f38eeae

Browse files
committed
feat: update db clean to remove webhooks triggered by verifications
1 parent a10b479 commit f38eeae

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

lib/pact_broker/db/clean.rb

+10-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,16 @@ def initialize database_connection, options = {}
1414
end
1515

1616
def call
17-
db[:verifications].where(id: db[:head_matrix].select(:verification_id)).invert.delete
17+
# TODO head matrix is the head for the consumer tags, not the provider tags.
18+
# Work out how to keep the head verifications for the provider tags.
19+
verification_ids = db[:verifications].where(id: db[:head_matrix].select(:verification_id)).invert.select(:verification_id)
20+
21+
triggered_webhook_ids = db[:triggered_webhooks].where(verification_id: verification_ids).select(:id)
22+
db[:webhook_executions].where(triggered_webhook_id: triggered_webhook_ids).delete
23+
db[:triggered_webhooks].where(id: triggered_webhook_ids).delete
24+
25+
verification_ids.delete
26+
1827
pp_ids = db[:head_matrix].select(:pact_publication_id)
1928

2029
triggered_webhook_ids = db[:triggered_webhooks].where(pact_publication_id: pp_ids).invert.select(:id)

spec/lib/pact_broker/db/clean_spec.rb

+3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ module DB
2626
.create_webhook_execution
2727
.create_deprecated_webhook_execution
2828
.create_verification(provider_version: "30")
29+
.create_verification_webhook
30+
.create_triggered_webhook
31+
.create_webhook_execution
2932
.create_consumer_version("3")
3033
.create_pact
3134
.comment("keep")

0 commit comments

Comments
 (0)