Class: PactBroker::Repositories::PactRepository
- Inherits:
-
Object
- Object
- PactBroker::Repositories::PactRepository
- Includes:
- Logging
- Defined in:
- lib/pact_broker/repositories/pact_repository.rb
Constant Summary
Constants included from Logging
Logging::LOG_DIR, Logging::LOG_FILE_NAME
Instance Method Summary collapse
- #create(params) ⇒ Object
- #create_or_update(params) ⇒ Object
- #find_by_version_and_provider(version_id, provider_id) ⇒ Object
- #find_latest_version(consumer_name, provider_name) ⇒ Object
Methods included from Logging
Instance Method Details
#create(params) ⇒ Object
24 25 26 |
# File 'lib/pact_broker/repositories/pact_repository.rb', line 24 def create params PactBroker::Models::Pact.new(version_id: params[:version_id], provider_id: params[:provider_id], json_content: params[:json_content]).save end |
#create_or_update(params) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/pact_broker/repositories/pact_repository.rb', line 28 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 |
#find_by_version_and_provider(version_id, provider_id) ⇒ Object
9 10 11 |
# File 'lib/pact_broker/repositories/pact_repository.rb', line 9 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 |
#find_latest_version(consumer_name, provider_name) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/pact_broker/repositories/pact_repository.rb', line 13 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('versions.id'). last end |