Restructure omni services and add Chatwoot research snapshot
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
module AvailabilityStatusable
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
def online_presence?
|
||||
obj_id = is_a?(Contact) ? id : user_id
|
||||
::OnlineStatusTracker.get_presence(account_id, self.class.name, obj_id)
|
||||
end
|
||||
|
||||
def availability_status
|
||||
if is_a? Contact
|
||||
contact_availability_status
|
||||
else
|
||||
user_availability_status
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def contact_availability_status
|
||||
online_presence? ? 'online' : 'offline'
|
||||
end
|
||||
|
||||
def user_availability_status
|
||||
# we are not considering presence in this case. Just returns the availability
|
||||
return availability unless auto_offline
|
||||
|
||||
# availability as a fallback in case the status is not present in redis
|
||||
online_presence? ? (::OnlineStatusTracker.get_status(account_id, user_id) || availability) : 'offline'
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user