Class: Api::Kiosque::V1::ReservationsController
- Inherits:
-
BaseController
- Object
- ActionController::API
- BaseController
- Api::Kiosque::V1::ReservationsController
- Defined in:
- app/controllers/api/kiosque/v1/reservations_controller.rb
Instance Method Summary collapse
- #show ⇒ Object
-
#update_status ⇒ Object
we allow 'arrived' status only for now.
Methods inherited from BaseController
#current_user, #identity_cache_memoization, #set_app_language
Methods included from LogrageCustomLogger
Instance Method Details
#show ⇒ Object
7 8 9 10 11 |
# File 'app/controllers/api/kiosque/v1/reservations_controller.rb', line 7 def show raise ActiveRecord::RecordNotFound unless (current_user, @reservation) render json: Api::Kiosque::V1::ReservationSerializer.new(@reservation).as_json end |
#update_status ⇒ Object
we allow 'arrived' status only for now
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'app/controllers/api/kiosque/v1/reservations_controller.rb', line 14 def update_status raise ActiveRecord::RecordNotFound unless (current_user, @reservation) reservation_status = params.require(:status) # if %w[pending arrived canceled no_show].include?(reservation_status) if %w[arrived].include?(reservation_status) @reservation.send("mark_as_#{reservation_status}!".to_sym) if @reservation.save # Use priority sync for kiosk operations - fast but non-blocking @reservation.trigger_priority_sync render json: { success: true, message: 'Reservation status updated successfully' } else render json: { success: false, message: reservation.errors..to_sentence }, status: :unprocessable_entity end else render json: { success: false, message: 'Invalid reservation status' }, status: :unprocessable_entity end end |