Class: Admin::DriversController

Inherits:
BaseController show all
Defined in:
app/controllers/admin/drivers_controller.rb

Overview

typed: ignore

Constant Summary

Constants inherited from BaseController

BaseController::INTERNAL_SERVER_ERROR_MESSAGE

Instance Method Summary collapse

Methods inherited from BaseController

#destroy_session, #identity_cache_memoization, #sign_in_page, #user_developer_session

Methods included from LogrageCustomLogger

#append_info_to_payload

Methods included from AdminHelper

#dynamic_pricings_formatter, #link_to_admin_reservations_path_by_id, #link_to_admin_restaurants_path_by_id, #link_to_log, #optional_locales, #optional_locales_with_labels, #staff_signed_in?

Methods included from UpdateLocaleConcern

#setup_locale

Methods inherited from ApplicationController

#after_sign_in_path_for, #after_sign_out_path_for, #default_url_options, #identity_cache_memoization, #render_not_found, #routing_error, search_params_key=

Methods included from ControllerHelpers

#check_boolean_param, #get_banners, #inventory_params, #reservation_params

Instance Method Details

#createObject



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/controllers/admin/drivers_controller.rb', line 5

def create
  delivery_channel = DeliveryChannel.fetch(params.require(:delivery_channel_id))
  service_type = params[:service_type]
  @reservations.each do |reservation|
    if DeliveryChannel::COURIER_PARTNERS.include?(delivery_channel.lib_class)
      delivery_channel.place_an_order_from_reservation_later(reservation, service_type)
    else
      delivery_channel.place_an_order_from_reservation_later(reservation)
    end
  end

  render json: { success: true, message: 'System is requesting a driver' }
end

#destroyObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/controllers/admin/drivers_controller.rb', line 19

def destroy
  if params[:force].to_s == 'true'
    @reservations.each do |reservation|
      delivery_channel = reservation.delivery_channel
      delivery_channel.courier.force_cancel_order(reservation, skip_reorder: true) if delivery_channel.present?
    end
  else
    @reservations.each do |reservation|
      delivery_channel = reservation.delivery_channel
      if delivery_channel.present?
        delivery_channel.cancel_order_from_reservation_later(reservation,
                                                             skip_reorder: true)
      end
    end
  end

  render json: { success: true, message: 'Driver cancelled' }
end