Class: SpreeCmCommissioner::OrdersController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/spree_cm_commissioner/orders_controller.rb

Instance Method Summary collapse

Instance Method Details

#showObject

rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/controllers/spree_cm_commissioner/orders_controller.rb', line 6

def show # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
  @order = if params[:id].match?(/^R\d{9,}-([A-Za-z0-9_\-]+)$/)
             Spree::Order.search_by_qr_data!(params[:id])
           else
             result = SpreeCmCommissioner::Orders::JwtToken::Verify.call(token: params[:t])
             unless result.success?
               @title = I18n.t('views.sign_in.errors.request_invalid')
               @message = I18n.t('views.sign_in.errors.request_invalid_message')

               return render(
                 template: 'shared_console/errors/request_invalid',
                 layout: 'error'
               )
             end

             result.value[:order]
           end

  @product_type = @order.products.first&.product_type || 'accommodation'
  @expired_at = Time.zone.at(result&.value&.dig(:payload, 'exp')) if result&.value&.dig(:payload, 'exp')

  if @order.tenant.present?
    @name = @order.tenant.name
    @logo = @order.tenant.active_vendor&.&.original_url
    @brand_color = @order.tenant.preferred_brand_primary_color
  end

  render :template => 'spree/order_mailer/confirm_email'
end