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_path_info(path_info) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/pact_broker/pacts/pact_params.rb', line 13

def self.from_path_info path_info
  new(
    consumer_name: path_info.fetch(:consumer_name),
    provider_name: path_info.fetch(:provider_name),
    consumer_version_number: path_info[:consumer_version_number],
    revision_number: path_info[:revision_number],
    pact_version_sha: path_info[:pact_version_sha]
  )
end

.from_request(request, path_info) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/pact_broker/pacts/pact_params.rb', line 23

def self.from_request request, path_info
  json_content = request.body.to_s
  parsed_content = begin
    parsed = JSON.parse(json_content, PACT_PARSING_OPTIONS)
    json_content = parsed.to_json # remove whitespace
    parsed
  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



84
85
86
# File 'lib/pact_broker/pacts/pact_params.rb', line 84

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

#consumer_nameObject



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

def consumer_name
  self[:consumer_name]
end

#consumer_name_in_pactObject



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

def consumer_name_in_pact
  self[:consumer_name_in_pact]
end

#consumer_version_numberObject



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

def consumer_version_number
  self[:consumer_version_number]
end

#json_contentObject



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

def json_content
  self[:json_content]
end

#pact_version_shaObject



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

def pact_version_sha
  self[:pact_version_sha]
end

#pacticipant_namesObject



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

def pacticipant_names
  [consumer_name, provider_name]
end

#providerObject



88
89
90
# File 'lib/pact_broker/pacts/pact_params.rb', line 88

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

#provider_nameObject



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

def provider_name
  self[:provider_name]
end

#provider_name_in_pactObject



80
81
82
# File 'lib/pact_broker/pacts/pact_params.rb', line 80

def provider_name_in_pact
  self[:provider_name_in_pact]
end

#revision_numberObject



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

def revision_number
  self[:revision_number]
end