Class: PactBroker::Api::Resources::PublishContracts

Inherits:
BaseResource
  • Object
show all
Includes:
WebhookExecutionMethods
Defined in:
lib/pact_broker/api/resources/publish_contracts.rb

Instance Method Summary collapse

Methods included from WebhookExecutionMethods

#finish_request, #handle_webhook_events, #schedule_triggered_webhooks

Instance Method Details

#allowed_methodsObject



21
22
23
# File 'lib/pact_broker/api/resources/publish_contracts.rb', line 21

def allowed_methods
  ["POST", "OPTIONS"]
end

#content_types_acceptedObject



17
18
19
# File 'lib/pact_broker/api/resources/publish_contracts.rb', line 17

def content_types_accepted
  [["application/json"]]
end

#content_types_providedObject



13
14
15
# File 'lib/pact_broker/api/resources/publish_contracts.rb', line 13

def content_types_provided
  [["application/hal+json", :to_json]]
end

#malformed_request?Boolean

Returns:

  • (Boolean)


25
26
27
28
29
30
31
# File 'lib/pact_broker/api/resources/publish_contracts.rb', line 25

def malformed_request?
  if request.post?
    invalid_json? || validation_errors_for_schema?
  else
    false
  end
end

#policy_nameObject



43
44
45
# File 'lib/pact_broker/api/resources/publish_contracts.rb', line 43

def policy_name
  :'contracts::contracts'
end

#policy_recordObject

for Pactflow



48
49
50
# File 'lib/pact_broker/api/resources/publish_contracts.rb', line 48

def policy_record
  @policy_record ||= pacticipant_service.find_pacticipant_by_name(parsed_contracts.pacticipant_name)
end

#process_postObject



33
34
35
36
37
38
39
40
41
# File 'lib/pact_broker/api/resources/publish_contracts.rb', line 33

def process_post
  if conflict_notices.any?
    set_conflict_response
    409
  else
    publish_contracts
    true
  end
end