Class: PactBroker::Pacticipants::Service
Class 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
Class Method Details
.create(params) ⇒ Object
68
69
70
|
# File 'lib/pact_broker/pacticipants/service.rb', line 68
def self.create params
pacticipant_repository.create(params)
end
|
.delete(name) ⇒ Object
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
# File 'lib/pact_broker/pacticipants/service.rb', line 72
def self.delete name
pacticipant = find_pacticipant_by_name name
connection = PactBroker::Domain::Pacticipant.new.db
version_ids = PactBroker::Domain::Version.where(pacticipant_id: pacticipant.id).select_for_subquery(:id) select_pacticipant = "select id from pacticipants where name = '#{name}'"
tag_repository.delete_by_version_id version_ids
webhook_service.delete_all_webhhook_related_objects_by_pacticipant pacticipant
pact_repository.delete_by_version_id version_ids
connection.run("delete from pact_publications where provider_id = #{pacticipant.id}")
connection.run("delete from verifications where pact_version_id IN (select id from pact_versions where provider_id = #{pacticipant.id})")
connection.run("delete from verifications where pact_version_id IN (select id from pact_versions where consumer_id = #{pacticipant.id})")
connection.run("delete from pact_versions where provider_id = #{pacticipant.id}")
connection.run("delete from pact_versions where consumer_id = #{pacticipant.id}")
connection.run("delete from versions where pacticipant_id = #{pacticipant.id}")
version_repository.delete_by_id version_ids
label_repository.delete_by_pacticipant_id(pacticipant.id)
connection.run("delete from pacticipants where id = #{pacticipant.id}")
end
|
.delete_if_orphan(pacticipant) ⇒ Object
91
92
93
|
# File 'lib/pact_broker/pacticipants/service.rb', line 91
def self.delete_if_orphan(pacticipant)
pacticipant_repository.delete_if_orphan(pacticipant)
end
|
.find(options) ⇒ Object
43
44
45
|
# File 'lib/pact_broker/pacticipants/service.rb', line 43
def self.find options
pacticipant_repository.find options
end
|
.find_all_pacticipant_versions_in_reverse_order(name) ⇒ Object
47
48
49
|
# File 'lib/pact_broker/pacticipants/service.rb', line 47
def self.find_all_pacticipant_versions_in_reverse_order name
pacticipant_repository.find_all_pacticipant_versions_in_reverse_order(name)
end
|
.find_all_pacticipants ⇒ Object
35
36
37
|
# File 'lib/pact_broker/pacticipants/service.rb', line 35
def self.find_all_pacticipants
pacticipant_repository.find_all
end
|
.find_pacticipant_by_name(name) ⇒ Object
39
40
41
|
# File 'lib/pact_broker/pacticipants/service.rb', line 39
def self.find_pacticipant_by_name name
pacticipant_repository.find_by_name(name)
end
|
.find_pacticipant_repository_url_by_pacticipant_name(name) ⇒ Object
51
52
53
54
55
56
57
58
|
# File 'lib/pact_broker/pacticipants/service.rb', line 51
def self.find_pacticipant_repository_url_by_pacticipant_name name
pacticipant = pacticipant_repository.find_by_name(name)
if pacticipant && pacticipant.repository_url
pacticipant.repository_url
else
nil
end
end
|
.find_potential_duplicate_pacticipants(pacticipant_name) ⇒ Object
26
27
28
29
30
31
32
33
|
# File 'lib/pact_broker/pacticipants/service.rb', line 26
def self.find_potential_duplicate_pacticipants pacticipant_name
PactBroker::Pacticipants::FindPotentialDuplicatePacticipantNames
.call(pacticipant_name, pacticipant_names).tap { | names|
if names.any?
logger.info "The following potential duplicate pacticipants were found for #{pacticipant_name}: #{names.join(", ")}"
end
} .collect{ | name | pacticipant_repository.find_by_name(name) }
end
|
.messages_for_potential_duplicate_pacticipants(pacticipant_names, base_url) ⇒ Object
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/pact_broker/pacticipants/service.rb', line 15
def self.messages_for_potential_duplicate_pacticipants pacticipant_names, base_url
messages = []
pacticipant_names.each do | name |
potential_duplicate_pacticipants = find_potential_duplicate_pacticipants(name)
if potential_duplicate_pacticipants.any?
messages << Messages.potential_duplicate_pacticipant_message(name, potential_duplicate_pacticipants, base_url)
end
end
messages
end
|
.pacticipant_names ⇒ Object
95
96
97
|
# File 'lib/pact_broker/pacticipants/service.rb', line 95
def self.pacticipant_names
pacticipant_repository.pacticipant_names
end
|
.update(params) ⇒ Object
60
61
62
63
64
65
66
|
# File 'lib/pact_broker/pacticipants/service.rb', line 60
def self.update params
pacticipant = pacticipant_repository.find_by_name(params.fetch('name'))
PactBroker::Api::Decorators::PacticipantDecorator.new(pacticipant).from_hash(params)
pacticipant.save
pacticipant_repository.find_by_name(params.fetch('name'))
end
|