61 lines
1.6 KiB
Ruby
Executable File
61 lines
1.6 KiB
Ruby
Executable File
class Api::Restaurant::MenuController < Api::ApiController
|
|
#Description
|
|
# Pull the default menu details and also other available (active) menus
|
|
# Input Params - order_id
|
|
def index
|
|
param_checksum = params[:checksum]
|
|
# checksum = File.readlines("public/checksums/menu_json.txt").pop.chomp
|
|
|
|
all_menu = Menu.includes(:menu_categories => [:children, :menu_items => [:menu_item_instances => :menu_instance_item_sets, :item_sets => :menu_item_instances]]).active.all
|
|
|
|
@request_url = ''
|
|
if ENV["SERVER_MODE"] == "cloud"
|
|
@request_url = request.base_url
|
|
end
|
|
# to hash
|
|
menu_array = []
|
|
all_menu.each do |m|
|
|
menu_array.push(m.to_json(:include => { :menu_categories => { :include => { :menu_items => { :include => [ :item_sets, :menu_item_instances => { :include => :menu_instance_item_sets } ] } } } } ))
|
|
end
|
|
|
|
#export Checksum file generate by md5
|
|
menu_checksum = Digest::MD5.hexdigest(menu_array.to_json)
|
|
|
|
if menu_checksum != param_checksum
|
|
response.headers['CHECKSUM'] = menu_checksum
|
|
@menus = all_menu
|
|
@item_attributes = MenuItemAttribute.all.load
|
|
@item_options = MenuItemOption.all.load
|
|
else
|
|
render :json => nil
|
|
end
|
|
# @current_menu = Menu.current_menu
|
|
end
|
|
|
|
#Description
|
|
# This API show current order details
|
|
# Input Params - menu_id
|
|
def show
|
|
@menu = menu_detail(params[:id])
|
|
end
|
|
|
|
|
|
private
|
|
def menu_detail (menu_id)
|
|
if (menu_id)
|
|
#Pull this menu
|
|
menu = Menu.find_by_id(menu_id)
|
|
return menu
|
|
else
|
|
Menu.current_menu
|
|
end
|
|
|
|
end
|
|
|
|
def menu_params()
|
|
params.permit(:id)
|
|
end
|
|
|
|
|
|
end
|