Class: Spree::Api::V2::Storefront::Account::GuestDynamicFieldsController

Inherits:
ResourceController
  • Object
show all
Defined in:
app/controllers/spree/api/v2/storefront/account/guest_dynamic_fields_controller.rb

Constant Summary collapse

ALLOWED_PHASES =
%w[pre_registration post_registration].freeze

Instance Method Summary collapse

Instance Method Details

#update_dynamic_fieldObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/spree/api/v2/storefront/account/guest_dynamic_fields_controller.rb', line 12

def update_dynamic_field
  return render_error_payload('Invalid phase') unless ALLOWED_PHASES.include?(params[:phase])
  return render_error_payload('No dynamic fields provided') if dynamic_fields_params.blank?

  result = SpreeCmCommissioner::Guests::Update.call(
    guest: @guest,
    guest_params: {
      guest_dynamic_fields_attributes: dynamic_fields_params.map { |f| { dynamic_field_id: f[:id], value: f[:value] } }
    }
  )

  if result.success?
    render_serialized_payload { serialize_guest(result.value[:guest]) }
  else
    render_error_payload(result.error)
  end
end