Sha256: 57b9698f5cc6756674c4f768ef2bd98243fbd83fbf28a8f03a7c98b53529c0a8
Contents?: true
Size: 1.41 KB
Versions: 1
Compression:
Stored size: 1.41 KB
Contents
require 'sequel' module PactBroker module Repositories class PactRepository include PactBroker::Logging def find_by_version_and_provider version_id, provider_id PactBroker::Models::Pact.where(version_id: version_id, provider_id: provider_id).single_record end def find_latest_version(consumer_name, provider_name) PactBroker::Models::Pact.select(:pacts__id, :pacts__json_content, :pacts__version_id, :pacts__provider_id, :versions__number___consumer_version_number). join(:versions, {:id => :version_id}, {implicit_qualifier: :pacts}). join(:pacticipants, {:id => :pacticipant_id}, {:table_alias => :consumers, implicit_qualifier: :versions}). join(:pacticipants, {:id => :provider_id}, {:table_alias => :providers, implicit_qualifier: :pacts}). where('providers.name = ?', provider_name). where('consumers.name = ?', consumer_name). order(:version_id). last end def create params PactBroker::Models::Pact.new(version_id: params[:version_id], provider_id: params[:provider_id], json_content: params[:json_content]).save end def create_or_update params if pact = find_by_version_and_provider(params[:version_id], params[:provider_id]) pact.update_fields(json_content: params[:json_content]) else create params end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pact_broker-0.0.4 | lib/pact_broker/repositories/pact_repository.rb |