Class: Spree::Api::V2::Storefront::SelfCheckInController

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

Constant Summary collapse

LEEWAY_IN_SECONDS =
120

Instance Method Summary collapse

Instance Method Details

#createObject

override



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/controllers/spree/api/v2/storefront/self_check_in_controller.rb', line 16

def create
  validate_token!(params[:qr_data])

  unless within_allowed_distance(params[:lat], params[:lon], params[:line_item_id])
    render_error_payload(I18n.t('self_check_in.invalid_distance'), 400)
    return
  end

  unless invalid_line_item(params[:line_item_id], params[:event_id])
    render_error_payload(I18n.t('self_check_in.invalid_line_item'), 400)
    return
  end

  context = create_check_in_records(params[:guest_ids])

  if context.success?
    render_serialized_payload(201) do
      collection_serializer.new(
        context.check_ins, { include: resource_includes }
      ).serializable_hash
    end
  else
    render_error_payload(context.message)
  end
end