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)
|
render json: json_response(list_active: false)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
list_obj = list.as_json.merge(list_active: list.active? ).merge(list.join_requests_as_json)
|
render json: json_response(list.serialized_with_status_join_requests_and_supplier_counters)
|
||||||
render json: json_response(list_obj)
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
render json: json_response(not_present: true)
|
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
|
def with_orders_and_join_requests_and_supplier_info_as_json
|
||||||
with_orders_and_join_requests_as_json.merge(
|
with_orders_and_join_requests_as_json.merge(
|
||||||
supplier_name: supplier.name,
|
supplier_name: supplier.name,
|
||||||
supplier_orders_in_process_count: supplier.orders_in_process_count,
|
).merge(supplier_counter_info)
|
||||||
supplier_orders_placed_count: supplier.orders_placed_count
|
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
|
end
|
||||||
|
|
||||||
def has_active_orders?
|
def has_active_orders?
|
||||||
|
|||||||
+4
-7
@@ -92,19 +92,16 @@ class Order
|
|||||||
end
|
end
|
||||||
|
|
||||||
def is_delivered!
|
def is_delivered!
|
||||||
decrement_placed = placed?
|
decrement_counter = placed? ? 'placed' : 'in_process'
|
||||||
self.state = 'delivered'
|
self.state = 'delivered'
|
||||||
if save
|
if save
|
||||||
orders_in_process_count = supplier.decrement_orders_in_process_count!
|
reduced_count = supplier.public_send "decrement_orders_#{decrement_counter}_count!"
|
||||||
orders_placed_count = supplier.decrement_orders_placed_count! if decrement_placed
|
|
||||||
for user_id in list.user_ids
|
for user_id in list.user_ids
|
||||||
broadcast_user user_id, 'order_being_delivered', id: id, list_id: list_id
|
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_#{decrement_counter}_count", count: reduced_count
|
||||||
broadcast_user user_id, 'orders_placed_count', count: orders_placed_count if decrement_placed
|
|
||||||
end
|
end
|
||||||
broadcast_supplier supplier_id, 'order_being_delivered', id: id, list_id: list_id
|
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_#{decrement_counter}_count", count: reduced_count
|
||||||
broadcast_supplier supplier_id, 'orders_placed_count', count: orders_placed_count if decrement_placed
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+15
-6
@@ -170,28 +170,37 @@ class Supplier
|
|||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# COUNTER SECTION. Can be a concern in a future
|
||||||
def increment_orders_in_process_count!
|
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
|
end
|
||||||
|
|
||||||
def increment_orders_placed_count!
|
def increment_orders_placed_count!
|
||||||
Qwaiter::Counter.incr "supplier_counter:#{id}:orders_placed"
|
Qwaiter::Counter.incr self.class.orders_placed_counter_key(id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def decrement_orders_in_process_count!
|
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
|
end
|
||||||
|
|
||||||
def decrement_orders_placed_count!
|
def decrement_orders_placed_count!
|
||||||
Qwaiter::Counter.decr "supplier_counter:#{id}:orders_placed"
|
Qwaiter::Counter.decr self.class.orders_placed_counter_key(id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def orders_in_process_count
|
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
|
end
|
||||||
|
|
||||||
def orders_placed_count
|
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
|
end
|
||||||
|
|
||||||
def active_order_count
|
def active_order_count
|
||||||
|
|||||||
@@ -87,13 +87,13 @@ describe Order do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it 'decreases the orders_in_process count and communicates it to user' do
|
it 'decreases the orders_in_process count and communicates it to user' do
|
||||||
expect{ order.is_delivered! }.to broadcast_to_user(user.id).message( 'orders_in_process_count' ).with(count: 6)
|
expect{ order.is_delivered! }.to broadcast_to_user(user.id).message( 'orders_placed_count' ).with(count: 10)
|
||||||
supplier.orders_placed_count.should == 10
|
supplier.orders_in_process_count.should == 7 # should not be reduced
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'decreases the orders_in_process count and communicates it to supplier' do
|
it 'decreases the orders_in_process count and communicates it to supplier' do
|
||||||
expect{ order.is_delivered! }.to broadcast_to_supplier(supplier.id).message( 'orders_in_process_count' ).with(count: 6)
|
expect{ order.is_delivered! }.to broadcast_to_supplier(supplier.id).message( 'orders_placed_count' ).with(count: 10)
|
||||||
supplier.orders_placed_count.should == 10
|
supplier.orders_in_process_count.should == 7 # should not be reduced
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not decreases the placed orders count if the order is not placed' do
|
it 'does not decreases the placed orders count if the order is not placed' do
|
||||||
|
|||||||
Reference in New Issue
Block a user