lib/pact_broker/api/resources/webhook.rb in pact_broker-2.106.0 vs lib/pact_broker/api/resources/webhook.rb in pact_broker-2.107.0.beta.1
- old
+ new
@@ -1,17 +1,14 @@
require "pact_broker/api/resources/base_resource"
require "pact_broker/services"
require "pact_broker/api/decorators/webhook_decorator"
-require "pact_broker/api/resources/webhook_resource_methods"
+require "pact_broker/api/contracts/webhook_contract"
module PactBroker
module Api
module Resources
class Webhook < BaseResource
-
- include WebhookResourceMethods
-
def content_types_accepted
[["application/json", :from_json]]
end
def content_types_provided
@@ -29,11 +26,11 @@
def resource_exists?
!!webhook
end
def malformed_request?
- super || (request.put? && webhook_validation_errors?(parsed_webhook, uuid))
+ super || (request.put? && validation_errors_for_schema?(schema, { uuid: uuid }.compact.merge(params)))
end
def from_json
if webhook
@webhook = webhook_service.update_by_uuid(uuid, params(symbolize_names: false))
@@ -44,11 +41,11 @@
201
end
end
def to_json
- decorator_class(:webhook_decorator).new(webhook).to_json(decorator_options)
+ decorator_class(:webhook_decorator).new(webhook).to_json(**decorator_options)
end
def delete_resource
webhook_service.delete_by_uuid uuid
true
@@ -76,9 +73,13 @@
@webhook ||= webhook_service.find_by_uuid uuid
end
def parsed_webhook
@parsed_webhook ||= decorator_class(:webhook_decorator).new(PactBroker::Domain::Webhook.new).from_json(request_body)
+ end
+
+ def schema
+ api_contract_class(:webhook_contract)
end
def uuid
identifier_from_path[:uuid]
end