Class: Report::CallStatistics::CallStatResultSummary

Inherits:
CallStatResult show all
Defined in:
app/services/report/call_statistics/call_stat_result_summary.rb

Overview

Service object: call stat result summary.

Instance Method Summary collapse

Methods inherited from CallStatResult

#ext_conn_talk_time_humanized, #format_time_for_humans, #inbound_direct_talk_time_humanized, #inbound_from_queue_talk_time_humanized, #outbound_talk_time_humanized, #ttl_outbound_talk_time_humanized

Instance Method Details

#add_direct_inbound_talk_time(seconds) ⇒ Object



38
39
40
41
42
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 38

def add_direct_inbound_talk_time(seconds)
  return unless seconds && seconds > 0

  inbound_direct_talk_times << seconds
end

#add_ext_conn_talk_time(seconds) ⇒ Object



32
33
34
35
36
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 32

def add_ext_conn_talk_time(seconds)
  return unless seconds && seconds > 0

  ext_conn_talk_times << seconds
end

#add_outbound_talk_time(seconds) ⇒ Object



26
27
28
29
30
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 26

def add_outbound_talk_time(seconds)
  return unless seconds && seconds > 0

  outbound_talk_times << seconds
end

#add_queue_inbound_talk_time(seconds) ⇒ Object



44
45
46
47
48
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 44

def add_queue_inbound_talk_time(seconds)
  return unless seconds && seconds > 0

  inbound_from_queue_talk_times << seconds
end

#average_inbound_direct_talk_time_humanizedObject



73
74
75
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 73

def average_inbound_direct_talk_time_humanized
  format_time_for_humans average_inbound_direct_talk_time_in_seconds
end

#average_inbound_direct_talk_time_in_secondsObject



57
58
59
60
61
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 57

def average_inbound_direct_talk_time_in_seconds
  inbound_direct_talk_times.presence&.delete(0)
  idtt = inbound_direct_talk_times.present? ? inbound_direct_talk_times.average : 0
  idtt.floor
end

#average_inbound_from_queue_talk_time_in_secondsObject



63
64
65
66
67
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 63

def average_inbound_from_queue_talk_time_in_seconds
  inbound_from_queue_talk_times.presence&.delete(0)
  ifqtt = inbound_from_queue_talk_times.present? ? inbound_from_queue_talk_times.average : 0
  ifqtt.floor
end

#average_inbound_from_queue_talk_times_humanizedObject



77
78
79
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 77

def average_inbound_from_queue_talk_times_humanized
  format_time_for_humans average_inbound_from_queue_talk_time_in_seconds
end

#average_outbound_talk_time_humanizedObject



69
70
71
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 69

def average_outbound_talk_time_humanized
  format_time_for_humans average_outbound_talk_time_in_seconds
end

#average_outbound_talk_time_in_secondsObject



50
51
52
53
54
55
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 50

def average_outbound_talk_time_in_seconds
  outbound_talk_times.presence&.delete(0)
  ext_conn_talk_times.presence&.delete(0)
  ott = outbound_talk_times.none? ? 0 : ((outbound_talk_times.sum - ext_conn_talk_times.sum) / outbound_talk_times.count)
  ott.floor
end

#ext_conn_talk_time_in_secondsObject



14
15
16
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 14

def ext_conn_talk_time_in_seconds
  ext_conn_talk_times.sum
end

#inbound_direct_talk_time_in_secondsObject



18
19
20
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 18

def inbound_direct_talk_time_in_seconds
  inbound_direct_talk_times.sum
end

#inbound_from_queue_talk_time_in_secondsObject



22
23
24
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 22

def inbound_from_queue_talk_time_in_seconds
  inbound_from_queue_talk_times.sum
end

#outbound_talk_time_in_secondsObject



10
11
12
# File 'app/services/report/call_statistics/call_stat_result_summary.rb', line 10

def outbound_talk_time_in_seconds
  outbound_talk_times.sum
end