Sha256: c5788b5dafec2e486ddd97de77cf60581b9b6d4a2f61c93f90711f3b103ec7b3

Contents?: true

Size: 1.31 KB

Versions: 7

Compression:

Stored size: 1.31 KB

Contents

require "pact_broker/logging"
require "pact_broker/repositories"
require "pact_broker/messages"

module PactBroker
  module Versions
    class BranchService
      extend PactBroker::Repositories

      def self.find_branch_version(pacticipant_name:, branch_name:, version_number:, **)
        BranchVersion.where(
          version: PactBroker::Domain::Version.where_pacticipant_name_and_version_number(pacticipant_name, version_number),
          branch: Branch.where(name: branch_name)
        ).single_record
      end

      def self.find_or_create_branch_version(pacticipant_name:, branch_name:, version_number:, **)
        pacticipant = pacticipant_repository.find_by_name_or_create(pacticipant_name)
        version = version_repository.find_by_pacticipant_id_and_number_or_create(pacticipant.id, version_number)
        branch_version_repository.add_branch(version, branch_name)
      end

      def self.find_branch(pacticipant_name:, branch_name:)
        Branch
          .select_all_qualified
          .join(:pacticipants, { Sequel[:branches][:pacticipant_id] => Sequel[:pacticipants][:id] }) do
            PactBroker::Repositories::Helpers.name_like(Sequel[:pacticipants][:name], pacticipant_name)
          end
          .where(Sequel[:branches][:name] => branch_name)
          .single_record
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
pact_broker-2.100.0 lib/pact_broker/versions/branch_service.rb
pact_broker-2.99.0 lib/pact_broker/versions/branch_service.rb
pact_broker-2.98.0 lib/pact_broker/versions/branch_service.rb
pact_broker-2.97.0 lib/pact_broker/versions/branch_service.rb
pact_broker-2.96.0 lib/pact_broker/versions/branch_service.rb
pact_broker-2.95.1 lib/pact_broker/versions/branch_service.rb
pact_broker-2.95.0 lib/pact_broker/versions/branch_service.rb