module ChatworkWebhookVerify::ControllerExtension

Public Instance Methods

verify_chatwork_webhook_signature!(token = nil) click to toggle source

@param token [String] webhook token (default: `ChatworkWebhookVerify.config.token`)

@raise [ActionController::BadRequest] signature is invalid

# File lib/chatwork_webhook_verify/controller_extension.rb, line 6
def verify_chatwork_webhook_signature!(token = nil)
  ChatworkWebhookVerify.verify!(
    token:     token,
    body:      request.env["rack.input"].read,
    signature: request.headers["X-ChatWorkWebhookSignature"] || params[:chatwork_webhook_signature],
  )
rescue ChatworkWebhookVerify::InvalidSignatureError, ::ArgumentError
  raise ActionController::BadRequest, "signature is invalid"
end