Class: PactBroker::Versions::Service

Inherits:
Object
  • Object
show all
Extended by:
Messages, Repositories, Services
Includes:
Logging
Defined in:
lib/pact_broker/versions/service.rb

Constant Summary

Constants included from Services

Services::FACTORIES

Class Method Summary collapse

Methods included from Messages

message, pluralize, potential_duplicate_pacticipant_message, validation_message

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 Services

badge_service, branch_service, certificate_service, contract_service, deployed_version_service, environment_service, get, group_service, index_service, integration_service, label_service, matrix_service, metrics_service, pact_service, pacticipant_service, register_default_services, register_service, released_version_service, tag_service, verification_service, version_service, webhook_service, webhook_trigger_service

Methods included from Logging

included, #log_error, #log_with_tag

Class Method Details

.create_or_overwrite(pacticipant_name, version_number, version) ⇒ Object



29
30
31
32
33
# File 'lib/pact_broker/versions/service.rb', line 29

def self.create_or_overwrite(pacticipant_name, version_number, version)
  pacticipant = pacticipant_repository.find_by_name_or_create(pacticipant_name)
  version = version_repository.create_or_overwrite(pacticipant, version_number, version)
  version
end

.create_or_update(pacticipant_name, version_number, version) ⇒ Object



35
36
37
38
39
# File 'lib/pact_broker/versions/service.rb', line 35

def self.create_or_update(pacticipant_name, version_number, version)
  pacticipant = pacticipant_repository.find_by_name_or_create(pacticipant_name)
  version = version_repository.create_or_update(pacticipant, version_number, version)
  version
end

.delete(version) ⇒ Object



45
46
47
48
49
50
51
# File 'lib/pact_broker/versions/service.rb', line 45

def self.delete version
  tag_repository.delete_by_version_id version.id
  webhook_repository.delete_triggered_webhooks_by_version_id version.id
  pact_repository.delete_by_version_id version.id
  verification_repository.delete_by_provider_version_id version.id
  version_repository.delete_by_id version.id
end

.find_by_pacticipant_name_and_latest_tag(pacticipant_name, tag) ⇒ Object



21
22
23
# File 'lib/pact_broker/versions/service.rb', line 21

def self.find_by_pacticipant_name_and_latest_tag(pacticipant_name, tag)
  version_repository.find_by_pacticipant_name_and_latest_tag(pacticipant_name, tag)
end

.find_by_pacticipant_name_and_number(params) ⇒ Object



17
18
19
# File 'lib/pact_broker/versions/service.rb', line 17

def self.find_by_pacticipant_name_and_number params
  version_repository.find_by_pacticipant_name_and_number params.fetch(:pacticipant_name), params.fetch(:pacticipant_version_number)
end

.find_latest_by_pacticipant_name_and_branch_name(pacticipant_name, branch_name) ⇒ Object



25
26
27
# File 'lib/pact_broker/versions/service.rb', line 25

def self.find_latest_by_pacticipant_name_and_branch_name(pacticipant_name, branch_name)
  version_repository.find_latest_by_pacticipant_name_and_branch_name(pacticipant_name, branch_name)
end

.find_latest_by_pacticpant_name(params) ⇒ Object



13
14
15
# File 'lib/pact_broker/versions/service.rb', line 13

def self.find_latest_by_pacticpant_name params
  version_repository.find_latest_by_pacticpant_name params.fetch(:pacticipant_name)
end

.find_latest_version_from_main_branch(pacticipant) ⇒ Object



41
42
43
# File 'lib/pact_broker/versions/service.rb', line 41

def self.find_latest_version_from_main_branch(pacticipant)
  version_repository.find_latest_version_from_main_branch(pacticipant)
end

.maybe_set_version_branch_from_tag(version, tag_name) ⇒ Object



53
54
55
56
57
58
# File 'lib/pact_broker/versions/service.rb', line 53

def self.maybe_set_version_branch_from_tag(version, tag_name)
  if use_tag_as_branch?(version) && version.branch_versions.empty?
    logger.info "Adding #{version.pacticipant.name} version #{version.number} to branch '#{tag_name}' (from first tag, because use_first_tag_as_branch=true)"
    branch_version_repository.add_branch(version, tag_name, auto_created: true)
  end
end