Class: PactBroker::Pacts::Repository
- Inherits:
-
Object
- Object
- PactBroker::Pacts::Repository
show all
- Includes:
- Logging
- Defined in:
- lib/pact_broker/pacts/repository.rb
Constant Summary
Constants included
from Logging
Logging::LOG_DIR, Logging::LOG_FILE_NAME
Instance Method Summary
collapse
Methods included from Logging
included, #logger, #logger=
Instance Method Details
#create(params) ⇒ Object
17
18
19
20
21
22
23
|
# File 'lib/pact_broker/pacts/repository.rb', line 17
def create params
DatabaseModel.new(
version_id: params[:version_id],
provider_id: params[:provider_id],
pact_version_content: find_or_create_pact_version_content(params[:json_content]),
).save.to_domain
end
|
#delete(params) ⇒ Object
32
33
34
35
36
37
38
39
|
# File 'lib/pact_broker/pacts/repository.rb', line 32
def delete params
id = AllPacts
.consumer(params.consumer_name)
.provider(params.provider_name)
.consumer_version_number(params.consumer_version_number)
.limit(1).first.id
DatabaseModel.where(id: id).delete
end
|
#find_all_pact_versions_between(consumer_name, options) ⇒ Object
41
42
43
44
45
46
47
48
|
# File 'lib/pact_broker/pacts/repository.rb', line 41
def find_all_pact_versions_between consumer_name, options
AllPacts
.eager(:tags)
.consumer(consumer_name)
.provider(options.fetch(:and))
.reverse_order(:consumer_version_order)
.collect(&:to_domain)
end
|
#find_by_version_and_provider(version_id, provider_id) ⇒ Object
58
59
60
61
62
63
|
# File 'lib/pact_broker/pacts/repository.rb', line 58
def find_by_version_and_provider version_id, provider_id
AllPacts
.eager(:tags)
.where(consumer_version_id: version_id, provider_id: provider_id)
.limit(1).collect(&:to_domain_with_content)[0]
end
|
#find_latest_pact(consumer_name, provider_name, tag = nil) ⇒ Object
69
70
71
72
73
74
75
|
# File 'lib/pact_broker/pacts/repository.rb', line 69
def find_latest_pact(consumer_name, provider_name, tag = nil)
query = AllPacts
.consumer(consumer_name)
.provider(provider_name)
query = query.tag(tag) unless tag.nil?
query.latest.all.collect(&:to_domain_with_content)[0]
end
|
#find_latest_pact_versions_for_provider(provider_name, tag = nil) ⇒ Object
50
51
52
53
54
55
56
|
# File 'lib/pact_broker/pacts/repository.rb', line 50
def find_latest_pact_versions_for_provider provider_name, tag = nil
if tag
LatestTaggedPacts.provider(provider_name).where(tag_name: tag).collect(&:to_domain)
else
LatestPacts.provider(provider_name).collect(&:to_domain)
end
end
|
#find_latest_pacts ⇒ Object
65
66
67
|
# File 'lib/pact_broker/pacts/repository.rb', line 65
def find_latest_pacts
LatestPacts.collect(&:to_domain_without_tags)
end
|
#find_next_pact(pact) ⇒ Object
95
96
97
98
99
100
101
102
|
# File 'lib/pact_broker/pacts/repository.rb', line 95
def find_next_pact pact
AllPacts
.eager(:tags)
.consumer(pact.consumer.name)
.provider(pact.provider.name)
.consumer_version_order_after(pact.consumer_version.order)
.earliest.collect(&:to_domain_with_content)[0]
end
|
#find_pact(consumer_name, consumer_version, provider_name) ⇒ Object
77
78
79
80
81
82
83
84
|
# File 'lib/pact_broker/pacts/repository.rb', line 77
def find_pact consumer_name, consumer_version, provider_name
AllPacts
.eager(:tags)
.consumer(consumer_name)
.provider(provider_name)
.consumer_version_number(consumer_version)
.limit(1).collect(&:to_domain_with_content)[0]
end
|
#find_previous_distinct_pact(pact) ⇒ Object
104
105
106
107
108
109
110
111
|
# File 'lib/pact_broker/pacts/repository.rb', line 104
def find_previous_distinct_pact pact
previous, current = nil, pact
loop do
previous = find_previous_distinct_pact_by_sha current
return previous if previous.nil? || different?(current, previous)
current = previous
end
end
|
#find_previous_pact(pact) ⇒ Object
86
87
88
89
90
91
92
93
|
# File 'lib/pact_broker/pacts/repository.rb', line 86
def find_previous_pact pact
AllPacts
.eager(:tags)
.consumer(pact.consumer.name)
.provider(pact.provider.name)
.consumer_version_order_before(pact.consumer_version.order)
.latest.collect(&:to_domain_with_content)[0]
end
|
#update(id, params) ⇒ Object
25
26
27
28
29
30
|
# File 'lib/pact_broker/pacts/repository.rb', line 25
def update id, params
DatabaseModel.find(id: id).tap do | pact |
pact_version_content = find_or_create_pact_version_content(params[:json_content])
pact.update(pact_version_content: pact_version_content)
end.to_domain
end
|