Sha256: eed33e850474431c241b54b187a4908dd9a530a370c3198e68504bc4ac7e0b87

Contents?: true

Size: 1.09 KB

Versions: 12

Compression:

Stored size: 1.09 KB

Contents

require "sucker_punch"
require "faraday"
require "pact_broker/logging"


# Publishes verification results, as if they were triggered by a CI job
module PactBroker
  class VerificationJob
    include SuckerPunch::Job
    include PactBroker::Logging

    def perform data
      pact_url = data.fetch(:pactUrl)
      pact = Faraday.get(pact_url, nil, { "Accept" => "application/hal+json"}).body
      pact_hash = JSON.parse(pact)

      headers = {
        "Content-Type" => "application/json",
        "Accept" => "application/hal+json"
      }

      provider_version = "1.2.#{(rand * 1000).to_i}"
      provider_url = pact_hash["_links"]["pb:provider"]["href"]
      Faraday.put("#{provider_url}/versions/#{provider_version}/tags/dev", nil, headers)

      verification_url = pact_hash["_links"]["pb:publish-verification-results"]["href"]
      body = {
        success: true,
        providerApplicationVersion: provider_version
      }

      Faraday.post(verification_url, body.to_json, headers)
      sleep 3
      Faraday.put("#{provider_url}/versions/#{provider_version}/tags/prod", nil, headers)
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
pact_broker-2.89.1 spec/support/verification_job.rb
pact_broker-2.89.0 spec/support/verification_job.rb
pact_broker-2.88.0 spec/support/verification_job.rb
pact_broker-2.87.0 spec/support/verification_job.rb
pact_broker-2.86.0 spec/support/verification_job.rb
pact_broker-2.85.1 spec/support/verification_job.rb
pact_broker-2.85.0 spec/support/verification_job.rb
pact_broker-2.84.0 spec/support/verification_job.rb
pact_broker-2.83.0 spec/support/verification_job.rb
pact_broker-2.82.0 spec/support/verification_job.rb
pact_broker-2.81.0 spec/support/verification_job.rb
pact_broker-2.80.0 spec/support/verification_job.rb