Class: PactBroker::Matrix::Repository
- Inherits:
-
Object
- Object
- PactBroker::Matrix::Repository
- Includes:
- Logging, Repositories, Repositories::Helpers
- Defined in:
- lib/pact_broker/matrix/repository.rb
Constant Summary collapse
- TP_COLS =
Used when using table_print to output query results
[ :consumer_version_number, :pact_revision_number, :provider_version_number, :verification_number]
- GROUP_BY_PROVIDER_VERSION_NUMBER =
[:consumer_name, :consumer_version_number, :provider_name, :provider_version_number]
- GROUP_BY_PROVIDER =
[:consumer_name, :consumer_version_number, :provider_name]
- GROUP_BY_PACT =
[:consumer_name, :provider_name]
Instance Method Summary collapse
-
#find(specified_selectors, options = {}) ⇒ Object
Return the latest matrix row (pact/verification) for each consumer_version_number/provider_version_number.
- #find_for_consumer_and_provider(pacticipant_1_name, pacticipant_2_name) ⇒ Object
-
#find_ids_for_pacticipant_names(params) ⇒ Object
rubocop: disable Metrics/CyclomaticComplexity.
Methods included from Logging
included, #log_error, #log_with_tag
Methods included from Repositories
#branch_version_repository, #integration_repository, #label_repository, #matrix_repository, #pact_repository, #pacticipant_repository, #tag_repository, #verification_repository, #version_repository, #webhook_repository
Methods included from Repositories::Helpers
#all_allowing_lazy_load, #all_forbidding_lazy_load, #mysql?, #name_like, #no_columns_selected?, #order_append_ignore_case, #order_ignore_case, #pacticipant_id_for_name, #postgres?, #select_all_qualified, #select_append_all_qualified, #select_for_subquery
Instance Method Details
#find(specified_selectors, options = {}) ⇒ Object
Return the latest matrix row (pact/verification) for each consumer_version_number/provider_version_number
59 60 61 62 63 64 65 66 |
# File 'lib/pact_broker/matrix/repository.rb', line 59 def find specified_selectors, = {} resolved_ignore_selectors = resolve_ignore_selectors() resolved_specified_selectors = resolve_versions_and_add_ids(specified_selectors, :specified, resolved_ignore_selectors) integrations = find_integrations_for_specified_selectors(resolved_specified_selectors, ) resolved_selectors = add_any_inferred_selectors(resolved_specified_selectors, resolved_ignore_selectors, integrations, ) considered_rows, ignored_rows = find_considered_and_ignored_rows(resolved_selectors, resolved_ignore_selectors, ) QueryResults.new(considered_rows.sort, ignored_rows.sort, specified_selectors, , resolved_selectors, resolved_ignore_selectors, integrations) end |
#find_for_consumer_and_provider(pacticipant_1_name, pacticipant_2_name) ⇒ Object
68 69 70 71 72 |
# File 'lib/pact_broker/matrix/repository.rb', line 68 def find_for_consumer_and_provider pacticipant_1_name, pacticipant_2_name selectors = [ UnresolvedSelector.new(pacticipant_name: pacticipant_1_name), UnresolvedSelector.new(pacticipant_name: pacticipant_2_name)] = { latestby: "cvpv" } find(selectors, ) end |
#find_ids_for_pacticipant_names(params) ⇒ Object
rubocop: disable Metrics/CyclomaticComplexity
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/pact_broker/matrix/repository.rb', line 33 def find_ids_for_pacticipant_names params criteria = {} if params[:consumer_name] || params[:provider_name] if params[:consumer_name] pacticipant = PactBroker::Domain::Pacticipant.where(name_like(:name, params[:consumer_name])).single_record criteria[:consumer_id] = pacticipant.id if pacticipant end if params[:provider_name] pacticipant = PactBroker::Domain::Pacticipant.where(name_like(:name, params[:provider_name])).single_record criteria[:provider_id] = pacticipant.id if pacticipant end end if params[:pacticipant_name] pacticipant = PactBroker::Domain::Pacticipant.where(name_like(:name, params[:pacticipant_name])).single_record criteria[:pacticipant_id] = pacticipant.id if pacticipant end criteria[:tag_name] = params[:tag_name] if params[:tag_name].is_a?(String) # Could be a sym from resource parameters in api.rb criteria end |