Module: PactBroker::Pacts::Service
Instance Method Summary
collapse
label_repository, matrix_repository, pact_repository, pacticipant_repository, tag_repository, verification_repository, version_repository, webhook_repository
Methods included from Services
badge_service, certificate_service, group_service, index_service, integration_service, label_service, matrix_service, metrics_service, pact_service, pacticipant_service, tag_service, verification_service, version_service, webhook_service, webhook_trigger_service
Methods included from Logging
included, #log_error
Instance Method Details
#create_or_update_pact(params, webhook_options) ⇒ Object
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/pact_broker/pacts/service.rb', line 43
def create_or_update_pact params, webhook_options
provider = pacticipant_repository.find_by_name_or_create params[:provider_name]
consumer = pacticipant_repository.find_by_name_or_create params[:consumer_name]
consumer_version = version_repository.find_by_pacticipant_id_and_number_or_create consumer.id, params[:consumer_version_number]
existing_pact = pact_repository.find_by_version_and_provider(consumer_version.id, provider.id)
if existing_pact
update_pact params, existing_pact, webhook_options
else
create_pact params, consumer_version, provider, webhook_options
end
end
|
#delete(params) ⇒ Object
36
37
38
39
40
41
|
# File 'lib/pact_broker/pacts/service.rb', line 36
def delete params
logger.info "Deleting pact version with params #{params}"
pacts = pact_repository.find_all_revisions(params[:consumer_name], params[:consumer_version_number], params[:provider_name])
webhook_service.delete_all_webhook_related_objects_by_pact_publication_ids(pacts.collect(&:id))
pact_repository.delete(params)
end
|
#delete_all_pact_publications_between(consumer, options) ⇒ Object
71
72
73
|
# File 'lib/pact_broker/pacts/service.rb', line 71
def delete_all_pact_publications_between consumer, options
pact_repository.delete_all_pact_publications_between consumer, options
end
|
#delete_all_pact_versions_between(consumer, options) ⇒ Object
75
76
77
|
# File 'lib/pact_broker/pacts/service.rb', line 75
def delete_all_pact_versions_between consumer, options
pact_repository.delete_all_pact_versions_between consumer, options
end
|
#find_all_pact_versions_between(consumer, options) ⇒ Object
67
68
69
|
# File 'lib/pact_broker/pacts/service.rb', line 67
def find_all_pact_versions_between consumer, options
pact_repository.find_all_pact_versions_between consumer, options
end
|
#find_by_consumer_version(params) ⇒ Object
32
33
34
|
# File 'lib/pact_broker/pacts/service.rb', line 32
def find_by_consumer_version params
pact_repository.find_by_consumer_version(params[:consumer_name], params[:consumer_version_number])
end
|
#find_distinct_pacts_between(consumer, options) ⇒ Object
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
# File 'lib/pact_broker/pacts/service.rb', line 97
def find_distinct_pacts_between consumer, options
all = pact_repository.find_all_pact_versions_between consumer, options
distinct = []
(0...all.size).each do | i |
if i == all.size - 1
distinct << all[i]
else
if all[i].json_content != all[i+1].json_content
distinct << all[i]
end
end
end
distinct
end
|
#find_latest_pact(params) ⇒ Object
16
17
18
|
# File 'lib/pact_broker/pacts/service.rb', line 16
def find_latest_pact params
pact_repository.find_latest_pact(params[:consumer_name], params[:provider_name], params[:tag])
end
|
#find_latest_pact_versions_for_provider(provider_name, options = {}) ⇒ Object
79
80
81
|
# File 'lib/pact_broker/pacts/service.rb', line 79
def find_latest_pact_versions_for_provider provider_name, options = {}
pact_repository.find_latest_pact_versions_for_provider provider_name, options[:tag]
end
|
#find_latest_pacts ⇒ Object
24
25
26
|
# File 'lib/pact_broker/pacts/service.rb', line 24
def find_latest_pacts
pact_repository.find_latest_pacts
end
|
#find_pact(params) ⇒ Object
28
29
30
|
# File 'lib/pact_broker/pacts/service.rb', line 28
def find_pact params
pact_repository.find_pact(params[:consumer_name], params[:consumer_version_number], params[:provider_name], params[:pact_version_sha])
end
|
#find_pact_versions_for_provider(provider_name, options = {}) ⇒ Object
87
88
89
|
# File 'lib/pact_broker/pacts/service.rb', line 87
def find_pact_versions_for_provider provider_name, options = {}
pact_repository.find_pact_versions_for_provider provider_name, options[:tag]
end
|
#find_pending_pact_versions_for_provider(provider_name) ⇒ Object
83
84
85
|
# File 'lib/pact_broker/pacts/service.rb', line 83
def find_pending_pact_versions_for_provider provider_name
pact_repository.find_pending_pact_versions_for_provider provider_name
end
|
#find_previous_distinct_pact_version(params) ⇒ Object
91
92
93
94
95
|
# File 'lib/pact_broker/pacts/service.rb', line 91
def find_previous_distinct_pact_version params
pact = find_pact params
return nil if pact.nil?
pact_repository.find_previous_distinct_pact pact
end
|
#merge_pact(params, webhook_options) ⇒ Object
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/pact_broker/pacts/service.rb', line 56
def merge_pact params, webhook_options
provider = pacticipant_repository.find_by_name_or_create params[:provider_name]
consumer = pacticipant_repository.find_by_name_or_create params[:consumer_name]
consumer_version = version_repository.find_by_pacticipant_id_and_number_or_create consumer.id, params[:consumer_version_number]
existing_pact = pact_repository.find_by_version_and_provider(consumer_version.id, provider.id)
params.merge!(json_content: Merger.merge_pacts(existing_pact.json_content, params[:json_content]))
update_pact params, existing_pact, webhook_options
end
|
#search_for_latest_pact(params) ⇒ Object
20
21
22
|
# File 'lib/pact_broker/pacts/service.rb', line 20
def search_for_latest_pact params
pact_repository.search_for_latest_pact(params[:consumer_name], params[:provider_name], params[:tag])
end
|