Sha256: fa54b12751e36715918c2ed7765ef11569af7200b03d272b48abdc8b303eddb9

Contents?: true

Size: 875 Bytes

Versions: 2

Compression:

Stored size: 875 Bytes

Contents

# frozen_string_literal: true

module FlowcommerceSpree
  class WebhooksController < ActionController::Base
    respond_to :json

    # forward all incoming requests to Flow WebhookService object
    # /flow/event-target endpoint
    def handle_flow_web_hook_event
      webhook_result = WebhookService.process(params[:webhook])
      result = {}
      result[:error] = webhook_result.full_messages.join("\n") if webhook_result.errors.any?
    rescue StandardError => e
      result = { error: e.class.to_s, message: e.message, backtrace: e.backtrace }
    ensure
      response_status = if result[:error]
                          logger.info(result)
                          :unprocessable_entity
                        else
                          :ok
                        end
      render json: result.except(:backtrace), status: response_status
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
flowcommerce_spree-0.0.2 app/controllers/flowcommerce_spree/webhooks_controller.rb
flowcommerce_spree-0.0.1 app/controllers/flowcommerce_spree/webhooks_controller.rb