Sha256: 5ad2995d21480a2e537cab6097e8ed1449e511d4572163e0a98476d3457f30c9
Contents?: true
Size: 1.66 KB
Versions: 2
Compression:
Stored size: 1.66 KB
Contents
require 'pact_broker/repositories' require 'pact_broker/logging' require 'base64' module PactBroker module Services class WebhookService extend Repositories include Logging def self.next_uuid SecureRandom.urlsafe_base64 end def self.create uuid, webhook, consumer, provider webhook_repository.create uuid, webhook, consumer, provider end def self.find_by_uuid uuid webhook_repository.find_by_uuid uuid end def self.delete_by_uuid uuid webhook_repository.delete_by_uuid uuid end def self.delete_by_pacticipant pacticipant webhook_repository.delete_by_pacticipant pacticipant end def self.find_all webhook_repository.find_all end def self.execute_webhook_now webhook webhook.execute end def self.find_by_consumer_and_provider consumer, provider webhook_repository.find_by_consumer_and_provider consumer, provider end def self.execute_webhooks pact webhooks = webhook_repository.find_by_consumer_and_provider pact.consumer, pact.provider if webhooks.any? run_later(webhooks) else logger.debug "No webhook found for consumer \"#{pact.consumer.name}\" and provider \"#{pact.provider.name}\"" end end # TODO background job? def self.run_later webhooks Thread.new do webhooks.each do | webhook | begin webhook.execute rescue StandardError => e # Exceptions are already logged, no need to log again. end end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pact_broker-1.3.0 | lib/pact_broker/services/webhook_service.rb |
pact_broker-1.2.0 | lib/pact_broker/services/webhook_service.rb |