|
1 | 1 | module PactBroker
|
2 | 2 | module Matrix
|
3 | 3 | class QueryBuilder
|
4 |
| - def self.provider_or_provider_version_matches(query_ids, verifications_qualifier = nil) |
5 |
| - Sequel.|(*provider_or_provider_version_criteria(query_ids, verifications_qualifier)) |
| 4 | + def self.provider_or_provider_version_matches(query_ids, provider_version_qualifier = nil, provider_qualifier = nil) |
| 5 | + Sequel.|(*provider_or_provider_version_criteria(query_ids, provider_version_qualifier, provider_qualifier)) |
6 | 6 | end
|
7 | 7 |
|
8 |
| - def self.provider_or_provider_version_matches_or_pact_unverified(query_ids, verifications_qualifier = nil) |
9 |
| - ors = provider_or_provider_version_criteria(query_ids, verifications_qualifier) |
10 |
| - |
11 |
| - ors << { |
12 |
| - qualify(:p, :provider_id) => query_ids.all_pacticipant_ids, |
13 |
| - qualify(verifications_qualifier, :provider_version_id) => nil |
| 8 | + def self.provider_matches(query_ids, qualifier) |
| 9 | + { |
| 10 | + qualify(qualifier, :provider_id) => query_ids.pacticipant_ids, |
14 | 11 | }
|
| 12 | + end |
| 13 | + |
| 14 | + def self.provider_or_provider_version_matches_or_pact_unverified(query_ids, provider_version_qualifier = nil, provider_qualifier = nil) |
| 15 | + ors = provider_or_provider_version_criteria(query_ids, provider_version_qualifier, provider_qualifier) |
| 16 | + |
| 17 | + # If we have specified any versions, then we need to add an |
| 18 | + # "OR (provider matches these IDs and provider version is null)" |
| 19 | + # so that we get a line with blank verification details. |
| 20 | + if query_ids.pacticipant_version_ids.any? |
| 21 | + ors << { |
| 22 | + qualify(provider_qualifier, :provider_id) => query_ids.all_pacticipant_ids, |
| 23 | + qualify(provider_version_qualifier, :provider_version_id) => nil |
| 24 | + } |
| 25 | + end |
| 26 | + |
15 | 27 | Sequel.|(*ors)
|
16 | 28 | end
|
17 | 29 |
|
18 |
| - def self.provider_or_provider_version_criteria(query_ids, qualifier = nil) |
| 30 | + def self.provider_or_provider_version_criteria(query_ids, provider_version_qualifier = nil, provider_qualifier = nil) |
19 | 31 | ors = []
|
20 |
| - ors << { qualify(qualifier, :provider_version_id) => query_ids.pacticipant_version_ids } if query_ids.pacticipant_version_ids.any? |
21 |
| - ors << { qualify(qualifier, :provider_id) => query_ids.pacticipant_ids } if query_ids.pacticipant_ids.any? |
| 32 | + ors << { qualify(provider_version_qualifier, :provider_version_id) => query_ids.pacticipant_version_ids } if query_ids.pacticipant_version_ids.any? |
| 33 | + ors << { qualify(provider_qualifier, :provider_id) => query_ids.pacticipant_ids } if query_ids.pacticipant_ids.any? |
22 | 34 | ors
|
23 | 35 | end
|
24 | 36 |
|
|
0 commit comments