Class: PactBroker::Webhooks::Service
- Inherits:
-
Object
- Object
- PactBroker::Webhooks::Service
show all
- Extended by:
- Repositories
- Includes:
- Logging
- Defined in:
- lib/pact_broker/webhooks/service.rb
Constant Summary
Constants included
from Logging
Logging::LOG_DIR, Logging::LOG_FILE_NAME
Class Method Summary
collapse
pact_repository, pacticipant_repository, tag_repository, verification_repository, version_repository, webhook_repository
Methods included from Logging
included, #log_error, #logger, #logger=
Class Method Details
.create(uuid, webhook, consumer, provider) ⇒ Object
25
26
27
|
# File 'lib/pact_broker/webhooks/service.rb', line 25
def self.create uuid, webhook, consumer, provider
webhook_repository.create uuid, webhook, consumer, provider
end
|
.delete_by_pacticipant(pacticipant) ⇒ Object
37
38
39
|
# File 'lib/pact_broker/webhooks/service.rb', line 37
def self.delete_by_pacticipant pacticipant
webhook_repository.delete_by_pacticipant pacticipant
end
|
.delete_by_uuid(uuid) ⇒ Object
33
34
35
|
# File 'lib/pact_broker/webhooks/service.rb', line 33
def self.delete_by_uuid uuid
webhook_repository.delete_by_uuid uuid
end
|
.errors(webhook) ⇒ Object
19
20
21
22
23
|
# File 'lib/pact_broker/webhooks/service.rb', line 19
def self.errors webhook
contract = PactBroker::Api::Contracts::WebhookContract.new(webhook)
contract.validate(webhook.attributes)
contract.errors
end
|
.execute_webhook_now(webhook) ⇒ Object
45
46
47
|
# File 'lib/pact_broker/webhooks/service.rb', line 45
def self.execute_webhook_now webhook
webhook.execute
end
|
.execute_webhooks(pact) ⇒ Object
53
54
55
56
57
58
59
60
61
|
# File 'lib/pact_broker/webhooks/service.rb', line 53
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
|
.find_all ⇒ Object
41
42
43
|
# File 'lib/pact_broker/webhooks/service.rb', line 41
def self.find_all
webhook_repository.find_all
end
|
.find_by_consumer_and_provider(consumer, provider) ⇒ Object
49
50
51
|
# File 'lib/pact_broker/webhooks/service.rb', line 49
def self.find_by_consumer_and_provider consumer, provider
webhook_repository.find_by_consumer_and_provider consumer, provider
end
|
.find_by_uuid(uuid) ⇒ Object
29
30
31
|
# File 'lib/pact_broker/webhooks/service.rb', line 29
def self.find_by_uuid uuid
webhook_repository.find_by_uuid uuid
end
|
.next_uuid ⇒ Object
15
16
17
|
# File 'lib/pact_broker/webhooks/service.rb', line 15
def self.next_uuid
SecureRandom.urlsafe_base64
end
|
.run_later(webhooks) ⇒ Object
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/pact_broker/webhooks/service.rb', line 63
def self.run_later webhooks
webhooks.each do | webhook |
begin
logger.info "Scheduling job for #{webhook.description} with uuid #{webhook.uuid}"
Job.perform_async webhook: webhook
rescue StandardError => e
log_error e
end
end
end
|