Sha256: 47b6b75c74faab54241451faaa24d7d12ed80a4650957b5b5a8d34c393f49dea
Contents?: true
Size: 1.47 KB
Versions: 12
Compression:
Stored size: 1.47 KB
Contents
require 'sequel' require 'pact_broker/domain/pacticipant' require 'pact_broker/repositories/helpers' module PactBroker module Pacticipants class Repository include PactBroker::Repositories::Helpers def find_by_name name PactBroker::Domain::Pacticipant.where(name_like(:name, name)).single_record end def find_by_id id PactBroker::Domain::Pacticipant.where(id: id).single_record end def find_all PactBroker::Domain::Pacticipant.order(:name).all end def find_all_pacticipant_versions_in_reverse_order name PactBroker::Domain::Version .select(Sequel[:versions][:id], Sequel[:versions][:number], Sequel[:versions][:pacticipant_id], Sequel[:versions][:order], Sequel[:versions][:created_at], Sequel[:versions][:updated_at]) .join(:pacticipants, {id: :pacticipant_id}) .where(name_like(:name, name)) .reverse_order(:order) end def find_by_name_or_create name if pacticipant = find_by_name(name) pacticipant else create name: name end end def create args PactBroker::Domain::Pacticipant.new(name: args[:name], repository_url: args[:repository_url]).save(raise_on_save_failure: true) end def pacticipant_names PactBroker::Domain::Pacticipant.select(:name).order(:name).collect{ | pacticipant| pacticipant.name } end def find_latest_version name end end end end
Version data entries
12 entries across 12 versions & 1 rubygems