Conceptual architectural change for CLI user app
This commit is contained in:
@@ -29,5 +29,52 @@ module Users
|
||||
render json: {}, status: :not_found and return unless @list.present? && Array.wrap(@list.user_ids).include?(current_user.id)
|
||||
render json: JSONAPI::Serializer.serialize(@list, serializer: Users::ListSerializer, include: %w[supplier users])
|
||||
end
|
||||
|
||||
# POST /user/list_needs_payment.json
|
||||
def needs_payment
|
||||
@list = active_list
|
||||
render json: json_alert('messages.no_active_list', list_active: false) and return unless @list.try(:id).to_s == params[:id]
|
||||
@list.needs_payment!
|
||||
render json: JSONAPI::Serializer.serialize(@list, serializer: Users::ListSerializer)
|
||||
end
|
||||
|
||||
# POST /user/lists/:id/move_table.json?table_id=....
|
||||
# used to move the table
|
||||
# TODO wrap logic of actions
|
||||
# - table_info
|
||||
# - move_table
|
||||
# into separate class and implement security in a non stupid way as it is now
|
||||
def move_to_table
|
||||
render json: json_alert('messages.no_active_list', list_active: false) and return unless active_list.present?
|
||||
render json: json_alert('messages.table_not_found') and return unless params[:table_id].present?
|
||||
@table = Table.find(params[:table_id])
|
||||
if @table.occupied?
|
||||
render json: {occupied: true}
|
||||
elsif @table.reserved?
|
||||
render json: {reserved: true}
|
||||
elsif active_list.supplier_id != @table.supplier_id
|
||||
res[:other_supplier] = true if active_list.supplier_id != @table.supplier_id
|
||||
res[:current_table_id] = active_list.table_id
|
||||
else
|
||||
active_list.move_to_table! @table
|
||||
render json: {occupied: false, reserved: false}
|
||||
end
|
||||
end
|
||||
|
||||
# Used by the user Ember app
|
||||
# please also look and mirror this action in the tables controller
|
||||
# POST /user/lists/:id/order_products
|
||||
def order_products
|
||||
res = {}
|
||||
res[:supplier_closed] = active_list.supplier.closed?
|
||||
unless res[:supplier_closed]
|
||||
# Create new list
|
||||
active_list.place_order product_orders: new_order_product_orders, user: current_user, first_order: false
|
||||
# do not add payload, since relevant data is added through message bus (Faye)
|
||||
#res[:payload] = JSONAPI::Serializer.serialize(order, serializer: Users::OrderSerializer, include: %w[product_orders])
|
||||
end
|
||||
render json: res
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user