Class: Spree::Api::Chatrace::GuestsController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/spree/api/chatrace/guests_controller.rb

Instance Method Summary collapse

Methods inherited from BaseController

#validate_token_client

Instance Method Details

#scopeObject



5
6
7
# File 'app/controllers/spree/api/chatrace/guests_controller.rb', line 5

def scope
  SpreeCmCommissioner::Guest.complete
end

#serialize_resource(guest) ⇒ Object



30
31
32
33
34
# File 'app/controllers/spree/api/chatrace/guests_controller.rb', line 30

def serialize_resource(guest)
  guest_auto_payload(guest)
    .merge(default_payload(guest))
    .merge(dynamic_field_key_value(guest))
end

#showObject



9
10
11
12
13
# File 'app/controllers/spree/api/chatrace/guests_controller.rb', line 9

def show
  guest = scope.find_by!(token: params[:id])

  render_serialized_payload { serialize_resource(guest) }
end

#updateObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/spree/api/chatrace/guests_controller.rb', line 15

def update
  guest = scope.find_by!(token: params[:id])

  guest.preferred_telegram_user_id = params[:telegram_user_id]
  guest.preferred_telegram_user_verified_at = DateTime.current

  # save & generate_completion_steps which will mark status as completed.
  if guest.save && guest.line_item.generate_completion_steps
    render_serialized_payload { serialize_resource(guest) }
  else
    guest.errors.merge!(guest.line_item.errors)
    render_error_payload(guest.errors)
  end
end