counter fixes
This commit is contained in:
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 34 KiB |
@@ -202,8 +202,7 @@ class UserController < ApplicationController
|
||||
render json: json_response(list_active: false)
|
||||
return
|
||||
else
|
||||
list_obj = list.as_json.merge(list_active: list.active? ).merge(list.join_requests_as_json)
|
||||
render json: json_response(list_obj)
|
||||
render json: json_response(list.serialized_with_status_join_requests_and_supplier_counters)
|
||||
end
|
||||
else
|
||||
render json: json_response(not_present: true)
|
||||
|
||||
+12
-3
@@ -326,9 +326,18 @@ class List
|
||||
def with_orders_and_join_requests_and_supplier_info_as_json
|
||||
with_orders_and_join_requests_as_json.merge(
|
||||
supplier_name: supplier.name,
|
||||
supplier_orders_in_process_count: supplier.orders_in_process_count,
|
||||
supplier_orders_placed_count: supplier.orders_placed_count
|
||||
)
|
||||
).merge(supplier_counter_info)
|
||||
end
|
||||
|
||||
def serialized_with_status_join_requests_and_supplier_counters
|
||||
as_json.merge(list_active: active? ).merge(join_requests_as_json).merge(supplier_counter_info)
|
||||
end
|
||||
|
||||
def supplier_counter_info
|
||||
{
|
||||
supplier_orders_in_process_count: Qwaiter::Counter.get(Supplier.orders_in_process_counter_key(supplier_id)),
|
||||
supplier_orders_placed_count: Qwaiter::Counter.get(Supplier.orders_placed_counter_key(supplier_id))
|
||||
}
|
||||
end
|
||||
|
||||
def has_active_orders?
|
||||
|
||||
+4
-7
@@ -92,19 +92,16 @@ class Order
|
||||
end
|
||||
|
||||
def is_delivered!
|
||||
decrement_placed = placed?
|
||||
decrement_counter = placed? ? 'placed' : 'in_process'
|
||||
self.state = 'delivered'
|
||||
if save
|
||||
orders_in_process_count = supplier.decrement_orders_in_process_count!
|
||||
orders_placed_count = supplier.decrement_orders_placed_count! if decrement_placed
|
||||
reduced_count = supplier.public_send "decrement_orders_#{decrement_counter}_count!"
|
||||
for user_id in list.user_ids
|
||||
broadcast_user user_id, 'order_being_delivered', id: id, list_id: list_id
|
||||
broadcast_user user_id, 'orders_in_process_count', count: orders_in_process_count
|
||||
broadcast_user user_id, 'orders_placed_count', count: orders_placed_count if decrement_placed
|
||||
broadcast_user user_id, "orders_#{decrement_counter}_count", count: reduced_count
|
||||
end
|
||||
broadcast_supplier supplier_id, 'order_being_delivered', id: id, list_id: list_id
|
||||
broadcast_supplier supplier_id, 'orders_in_process_count', count: orders_in_process_count
|
||||
broadcast_supplier supplier_id, 'orders_placed_count', count: orders_placed_count if decrement_placed
|
||||
broadcast_supplier supplier_id, "orders_#{decrement_counter}_count", count: reduced_count
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+15
-6
@@ -170,28 +170,37 @@ class Supplier
|
||||
true
|
||||
end
|
||||
|
||||
# COUNTER SECTION. Can be a concern in a future
|
||||
def increment_orders_in_process_count!
|
||||
Qwaiter::Counter.incr "supplier_counter:#{id}:orders_in_process"
|
||||
Qwaiter::Counter.incr self.class.orders_in_process_counter_key(id)
|
||||
end
|
||||
|
||||
def increment_orders_placed_count!
|
||||
Qwaiter::Counter.incr "supplier_counter:#{id}:orders_placed"
|
||||
Qwaiter::Counter.incr self.class.orders_placed_counter_key(id)
|
||||
end
|
||||
|
||||
def decrement_orders_in_process_count!
|
||||
Qwaiter::Counter.decr "supplier_counter:#{id}:orders_in_process"
|
||||
Qwaiter::Counter.decr self.class.orders_in_process_counter_key(id)
|
||||
end
|
||||
|
||||
def decrement_orders_placed_count!
|
||||
Qwaiter::Counter.decr "supplier_counter:#{id}:orders_placed"
|
||||
Qwaiter::Counter.decr self.class.orders_placed_counter_key(id)
|
||||
end
|
||||
|
||||
def orders_in_process_count
|
||||
Qwaiter::Counter.get "supplier_counter:#{id}:orders_in_process"
|
||||
Qwaiter::Counter.get self.class.orders_in_process_counter_key(id)
|
||||
end
|
||||
|
||||
def orders_placed_count
|
||||
Qwaiter::Counter.get "supplier_counter:#{id}:orders_placed"
|
||||
Qwaiter::Counter.get self.class.orders_placed_counter_key(id)
|
||||
end
|
||||
|
||||
def self.orders_in_process_counter_key(id)
|
||||
"supplier_counter:#{id}:orders_in_process"
|
||||
end
|
||||
|
||||
def self.orders_placed_counter_key(id)
|
||||
"supplier_counter:#{id}:orders_placed"
|
||||
end
|
||||
|
||||
def active_order_count
|
||||
|
||||
Reference in New Issue
Block a user