Sha256: 2874ba5d8a4ee9157709c6fca74dee49a0daf4c588d9870f22a743fdcb72ed0a

Contents?: true

Size: 1.17 KB

Versions: 11

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true

module Users
  SessionsController.class_eval do
    # This endpoint is for returning to the FrontEnd the dynamic url to an external checkout, a flow.io url.
    def checkout_url
      flow_session_id = request.headers['flow-session-id']
      return render json: { error: :session_id_missing }, status: 422 if flow_session_id.blank?

      checkout_token =
        FlowcommerceSpree::OrderSync.new(order: current_order, flow_session_id: flow_session_id).synchronize!
      return render json: { error: :checkout_token_missing }, status: 422 if checkout_token.blank?

      checkout_url = ENV['FLOW_CHECKOUT_URL'] || 'https://checkout.flow.io'

      render json: { checkout_url: "#{checkout_url}/tokens/#{checkout_token}" }, status: 200
    end

    private

    def add_optional_attrs(session_current)
      session_current['user'] = current_user_attrs if current_user&.spree_api_key?
      session_current['region'] = zone_attrs

      external_checkout = current_zone.flow_io_active_experience?
      session_current['external_checkout'] = external_checkout
      session_current['flow_session_id'] = session['flow_session_id'] if external_checkout
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
flowcommerce_spree-0.0.22 app/controllers/users/sessions_controller_decorator.rb
flowcommerce_spree-0.0.21 app/controllers/users/sessions_controller_decorator.rb
flowcommerce_spree-0.0.20 app/controllers/users/sessions_controller_decorator.rb
flowcommerce_spree-0.0.19 app/controllers/users/sessions_controller_decorator.rb
flowcommerce_spree-0.0.18 app/controllers/users/sessions_controller_decorator.rb
flowcommerce_spree-0.0.17 app/controllers/users/sessions_controller_decorator.rb
flowcommerce_spree-0.0.16 app/controllers/users/sessions_controller_decorator.rb
flowcommerce_spree-0.0.15 app/controllers/users/sessions_controller_decorator.rb
flowcommerce_spree-0.0.14 app/controllers/users/sessions_controller_decorator.rb
flowcommerce_spree-0.0.13 app/controllers/users/sessions_controller_decorator.rb
flowcommerce_spree-0.0.12 app/controllers/users/sessions_controller_decorator.rb