class PactBroker::Api::Resources::Webhook

Public Instance Methods

action() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 58
def action
  if request.put?
    webhook ? :update : :create
  else
    super
  end
end
allowed_methods() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 18
def allowed_methods
  ["GET", "PUT", "DELETE", "OPTIONS"]
end
content_types_accepted() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 10
def content_types_accepted
  [["application/json", :from_json]]
end
content_types_provided() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 14
def content_types_provided
  [["application/hal+json", :to_json]]
end
delete_resource() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 49
def delete_resource
  webhook_service.delete_by_uuid uuid
  true
end
from_json() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 34
def from_json
  if webhook
    @webhook = webhook_service.update_by_uuid(uuid, params(symbolize_names: false))
    response.body = to_json
  else
    @webhook = webhook_service.create(uuid, parsed_webhook, consumer, provider)
    response.body = to_json
    201
  end
end
malformed_request?() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 30
def malformed_request?
  super || (request.put? && validation_errors_for_schema?(schema, { uuid: uuid }.compact.merge(params)))
end
policy_name() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 54
def policy_name
  :'webhooks::webhook'
end
policy_record() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 66
def policy_record
  webhook || parsed_webhook
end
put_can_create?() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 22
def put_can_create?
  true
end
resource_exists?() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 26
def resource_exists?
  !!webhook
end
to_json() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 45
def to_json
  decorator_class(:webhook_decorator).new(webhook).to_json(**decorator_options)
end

Private Instance Methods

parsed_webhook() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 76
def parsed_webhook
  @parsed_webhook ||= decorator_class(:webhook_decorator).new(PactBroker::Domain::Webhook.new).from_json(request_body)
end
schema() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 80
def schema
  api_contract_class(:webhook_contract)
end
uuid() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 84
def uuid
  identifier_from_path[:uuid]
end
webhook() click to toggle source
# File lib/pact_broker/api/resources/webhook.rb, line 72
def webhook
  @webhook ||= webhook_service.find_by_uuid uuid
end