Class: PactBroker::Pacts::PactParams

Inherits:
Hash
  • Object
show all
Defined in:
lib/pact_broker/pacts/pact_params.rb

Defined Under Namespace

Classes: PacticipantName

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes) ⇒ PactParams

Returns a new instance of PactParams.



9
10
11
# File 'lib/pact_broker/pacts/pact_params.rb', line 9

def initialize attributes
  merge!(attributes)
end

Class Method Details

.from_request(request, path_info) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/pact_broker/pacts/pact_params.rb', line 13

def self.from_request request, path_info
  json_content = request.body.to_s
  parsed_content = begin
    JSON.parse(json_content, PACT_PARSING_OPTIONS)
  rescue
    {}
  end

  consumer_name_in_pact = parsed_content.is_a?(Hash) ? parsed_content.fetch('consumer',{})['name'] : nil
  provider_name_in_pact = parsed_content.is_a?(Hash) ? parsed_content.fetch('provider',{})['name'] : nil

  new(
    consumer_name: path_info.fetch(:consumer_name),
    provider_name: path_info.fetch(:provider_name),
    revision_number: path_info[:revision_number],
    consumer_version_number: path_info[:consumer_version_number],
    pact_version_sha: path_info[:pact_version_sha],
    consumer_name_in_pact: consumer_name_in_pact,
    provider_name_in_pact: provider_name_in_pact,
    json_content: json_content
  )
end

Instance Method Details

#consumerObject



72
73
74
# File 'lib/pact_broker/pacts/pact_params.rb', line 72

def consumer
  PacticipantName.new(consumer_name, consumer_name_in_pact, 'consumer')
end

#consumer_nameObject



40
41
42
# File 'lib/pact_broker/pacts/pact_params.rb', line 40

def consumer_name
  self[:consumer_name]
end

#consumer_name_in_pactObject



64
65
66
# File 'lib/pact_broker/pacts/pact_params.rb', line 64

def consumer_name_in_pact
  self[:consumer_name_in_pact]
end

#consumer_version_numberObject



48
49
50
# File 'lib/pact_broker/pacts/pact_params.rb', line 48

def consumer_version_number
  self[:consumer_version_number]
end

#json_contentObject



60
61
62
# File 'lib/pact_broker/pacts/pact_params.rb', line 60

def json_content
  self[:json_content]
end

#pact_version_shaObject



52
53
54
# File 'lib/pact_broker/pacts/pact_params.rb', line 52

def pact_version_sha
  self[:pact_version_sha]
end

#pacticipant_namesObject



36
37
38
# File 'lib/pact_broker/pacts/pact_params.rb', line 36

def pacticipant_names
  [consumer_name, provider_name]
end

#providerObject



76
77
78
# File 'lib/pact_broker/pacts/pact_params.rb', line 76

def provider
  PacticipantName.new(provider_name, provider_name_in_pact, 'provider')
end

#provider_nameObject



44
45
46
# File 'lib/pact_broker/pacts/pact_params.rb', line 44

def provider_name
  self[:provider_name]
end

#provider_name_in_pactObject



68
69
70
# File 'lib/pact_broker/pacts/pact_params.rb', line 68

def provider_name_in_pact
  self[:provider_name_in_pact]
end

#revision_numberObject



56
57
58
# File 'lib/pact_broker/pacts/pact_params.rb', line 56

def revision_number
  self[:revision_number]
end