queri 0.0.10 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/lib/queri.rb +2 -0
- data/lib/queri/realtime.rb +21 -4
- data/lib/queri/realtime/agents.rb +3 -54
- data/lib/queri/realtime/calls.rb +28 -0
- data/lib/queri/realtime/queues.rb +2 -38
- data/lib/queri/realtime_arg_helpers.rb +13 -0
- data/lib/queri/version.rb +1 -1
- data/spec/realtime/agents_spec.rb +1 -1
- data/spec/realtime/calls_spec.rb +20 -0
- data/spec/realtime/realtime_spec.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: efd6822a01d26d086332c69907548f6d66a2a40b
|
4
|
+
data.tar.gz: e79b2a589fb598865acaa625a0c606dce897eea0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9e70aee15638273b0934afe74418c607549e00084268a2992fc3eee81f32d13822d529d932b1634498d4bb1c467257361cf023b6ff94bd4b111b98d748a0446
|
7
|
+
data.tar.gz: 4e61d974581eee5bb987ab44a455da17d057234937853eaedacc88d83b2ec12924ee65cc7920e723e20d4f5e3a3e725ec2f8adb5a837367cb255102d3ec8bf86
|
data/README.md
CHANGED
@@ -139,6 +139,7 @@ Currently returns analyses from two methods: QM.stats and QM.realtime.
|
|
139
139
|
* UnansweredOutboundCallsByAgent
|
140
140
|
* Realtime
|
141
141
|
* Agents
|
142
|
+
* Calls
|
142
143
|
* Queues
|
143
144
|
|
144
145
|
### Required Arguments
|
@@ -182,6 +183,7 @@ Composite aggregate reports return an Array of Hashes, each Hash corresponding t
|
|
182
183
|
* UnansweredCallsByKeyPress
|
183
184
|
* Realtime
|
184
185
|
* Agents
|
186
|
+
* Calls
|
185
187
|
* Queues
|
186
188
|
* Composite agent-level reports
|
187
189
|
* Stats
|
data/lib/queri.rb
CHANGED
@@ -3,8 +3,10 @@ require "yaml"
|
|
3
3
|
require "xmlrpc/client"
|
4
4
|
require 'active_support/ordered_hash'
|
5
5
|
|
6
|
+
require File.join( File.dirname(__FILE__), "queri", "realtime_arg_helpers" )
|
6
7
|
Dir[ File.join( File.dirname(__FILE__), "**", "*.rb" ) ].each {|f| require f}
|
7
8
|
|
9
|
+
|
8
10
|
module Queri
|
9
11
|
LOGFILE = ""
|
10
12
|
PERIOD = ""
|
data/lib/queri/realtime.rb
CHANGED
@@ -1,14 +1,31 @@
|
|
1
1
|
module Queri
|
2
2
|
class Realtime
|
3
|
+
include RealtimeArgHelpers
|
4
|
+
|
5
|
+
attr_reader :response
|
6
|
+
|
3
7
|
@@query_method = "QM.realtime"
|
4
8
|
@@xml_code = "RealtimeDO"
|
5
9
|
|
6
|
-
|
7
|
-
|
10
|
+
class << self
|
11
|
+
def query_method
|
12
|
+
@@query_method
|
13
|
+
end
|
14
|
+
|
15
|
+
def xml_code
|
16
|
+
@@xml_code
|
17
|
+
end
|
18
|
+
|
19
|
+
def keys
|
20
|
+
key_translations.keys
|
21
|
+
end
|
8
22
|
end
|
9
23
|
|
10
|
-
def
|
11
|
-
|
24
|
+
def initialize *args
|
25
|
+
raise ArgumentError, "expected argument: queues(Array)" unless valid_args?(args)
|
26
|
+
@queues = args.first
|
27
|
+
@response = parse_response
|
12
28
|
end
|
29
|
+
|
13
30
|
end
|
14
31
|
end
|
@@ -1,19 +1,15 @@
|
|
1
1
|
module Queri
|
2
2
|
class Realtime
|
3
|
-
class Agents
|
4
|
-
|
3
|
+
class Agents < Queri::Realtime
|
4
|
+
include CompositeReportHelpers
|
5
5
|
|
6
6
|
class << self
|
7
7
|
def xml_code
|
8
8
|
Realtime.xml_code + ".RTAgentsLoggedIn"
|
9
9
|
end
|
10
10
|
|
11
|
-
def query_method
|
12
|
-
Realtime.query_method
|
13
|
-
end
|
14
|
-
|
15
11
|
def key_translations
|
16
|
-
|
12
|
+
ActiveSupport::OrderedHash[
|
17
13
|
:ready_state, " ",
|
18
14
|
:empty_column, " ",
|
19
15
|
:agent, "Agent ",
|
@@ -27,54 +23,7 @@ module Queri
|
|
27
23
|
:magic_wand, " "
|
28
24
|
]
|
29
25
|
end
|
30
|
-
|
31
|
-
def keys
|
32
|
-
# This response is a conversion of a table view, and contains non-unique
|
33
|
-
# key values, so this method must be statically recorded, as to maintain
|
34
|
-
# order of keys.
|
35
|
-
[
|
36
|
-
:ready_state,
|
37
|
-
:empty_column,
|
38
|
-
:agent,
|
39
|
-
:login_time,
|
40
|
-
:assigned_queues,
|
41
|
-
:extension,
|
42
|
-
:pause,
|
43
|
-
:server,
|
44
|
-
:time_last_call_ended,
|
45
|
-
:on_queue,
|
46
|
-
:magic_wand
|
47
|
-
]
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def initialize *args
|
52
|
-
raise ArgumentError, "expected argument: queues(Array)" unless valid_args?(args)
|
53
|
-
@queues = args.first
|
54
|
-
@response = parse_response
|
55
26
|
end
|
56
|
-
|
57
|
-
private
|
58
|
-
|
59
|
-
def valid_args? args
|
60
|
-
valid = true
|
61
|
-
valid = false if args[0].class != Array
|
62
|
-
if valid and args[0].empty?
|
63
|
-
raise ArgumentError, "queues array cannot be empty"
|
64
|
-
end
|
65
|
-
return valid
|
66
|
-
end
|
67
|
-
|
68
|
-
def parse_response
|
69
|
-
r = Queri.send_request(@queues, self)
|
70
|
-
agent_metrics = []
|
71
|
-
r.each_with_index do |agent,i|
|
72
|
-
if i > 0
|
73
|
-
agent_metrics << Hash[self.class.keys.zip(agent)]
|
74
|
-
end
|
75
|
-
end
|
76
|
-
return agent_metrics
|
77
|
-
end
|
78
27
|
end
|
79
28
|
end
|
80
29
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Queri
|
2
|
+
class Realtime
|
3
|
+
class Calls < Queri::Realtime
|
4
|
+
include CompositeReportHelpers
|
5
|
+
|
6
|
+
class << self
|
7
|
+
def xml_code
|
8
|
+
Realtime.xml_code + ".RTCallsBeingProc"
|
9
|
+
end
|
10
|
+
|
11
|
+
def key_translations
|
12
|
+
ActiveSupport::OrderedHash[
|
13
|
+
:direction_of_call, " ",
|
14
|
+
:queue, "Queue ",
|
15
|
+
:clid, "Caller ",
|
16
|
+
:time_call_entered_queue, "Entered ",
|
17
|
+
:time_call_on_wait, "Waiting ",
|
18
|
+
:call_duration, "Duration ",
|
19
|
+
:agent, "Agent ",
|
20
|
+
:music_on_hold, "MOH",
|
21
|
+
:server, "Srv",
|
22
|
+
:magic_wand, " "
|
23
|
+
]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -1,17 +1,13 @@
|
|
1
1
|
module Queri
|
2
2
|
class Realtime
|
3
|
-
class Queues
|
4
|
-
|
3
|
+
class Queues < Queri::Realtime
|
4
|
+
include CompositeReportHelpers
|
5
5
|
|
6
6
|
class << self
|
7
7
|
def xml_code
|
8
8
|
Realtime.xml_code + ".RTRiassunto"
|
9
9
|
end
|
10
10
|
|
11
|
-
def query_method
|
12
|
-
Realtime.query_method
|
13
|
-
end
|
14
|
-
|
15
11
|
def key_translations
|
16
12
|
Hash[
|
17
13
|
:empty_column, " ",
|
@@ -26,39 +22,7 @@ module Queri
|
|
26
22
|
:agents_handling_outbound_calls, "On phone outbound"
|
27
23
|
]
|
28
24
|
end
|
29
|
-
|
30
|
-
def keys
|
31
|
-
key_translations.keys
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def initialize *args
|
36
|
-
raise ArgumentError, "expected argument: queues(Array)" unless valid_args?(args)
|
37
|
-
@queues = args.first
|
38
|
-
@response = parse_response
|
39
25
|
end
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
def valid_args? args
|
44
|
-
valid = true
|
45
|
-
valid = false if args[0].class != Array
|
46
|
-
if valid and args[0].empty?
|
47
|
-
raise ArgumentError, "queues array cannot be empty"
|
48
|
-
end
|
49
|
-
return valid
|
50
|
-
end
|
51
|
-
|
52
|
-
def parse_response
|
53
|
-
r = Queri.send_request(@queues, self)
|
54
|
-
xml_keys_to_human_readable_keys = self.class.key_translations.invert
|
55
|
-
new_keys = r.shift.map {|k| xml_keys_to_human_readable_keys[k]}
|
56
|
-
agent_metrics = []
|
57
|
-
r.each do |agent|
|
58
|
-
agent_metrics << Hash[new_keys.zip(agent)]
|
59
|
-
end
|
60
|
-
return agent_metrics
|
61
|
-
end
|
62
26
|
end
|
63
27
|
end
|
64
28
|
end
|
data/lib/queri/version.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Queri::Realtime::Calls do
|
4
|
+
let(:report_class) { Queri::Realtime::Calls }
|
5
|
+
let(:xml_code) { report_class.xml_code }
|
6
|
+
|
7
|
+
before { Queri.configure_with(File.join(File.dirname(__FILE__), '..', 'config.yml')) }
|
8
|
+
|
9
|
+
it_behaves_like "a report class"
|
10
|
+
|
11
|
+
it_behaves_like "a report method"
|
12
|
+
|
13
|
+
it_behaves_like "a queuemetrics report"
|
14
|
+
|
15
|
+
it_behaves_like "a realtime report"
|
16
|
+
|
17
|
+
describe "An instance of", Queri::Realtime::Calls do
|
18
|
+
it_behaves_like "a realtime report instance"
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: queri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brad Rice
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -87,7 +87,9 @@ files:
|
|
87
87
|
- lib/queri/composite_report_helpers.rb
|
88
88
|
- lib/queri/realtime.rb
|
89
89
|
- lib/queri/realtime/agents.rb
|
90
|
+
- lib/queri/realtime/calls.rb
|
90
91
|
- lib/queri/realtime/queues.rb
|
92
|
+
- lib/queri/realtime_arg_helpers.rb
|
91
93
|
- lib/queri/stats.rb
|
92
94
|
- lib/queri/stats/agents_and_sessions.rb
|
93
95
|
- lib/queri/stats/agents_and_sessions/agent_availability.rb
|
@@ -183,6 +185,7 @@ files:
|
|
183
185
|
- queri.gemspec
|
184
186
|
- spec/queri_spec.rb
|
185
187
|
- spec/realtime/agents_spec.rb
|
188
|
+
- spec/realtime/calls_spec.rb
|
186
189
|
- spec/realtime/queues_spec.rb
|
187
190
|
- spec/realtime/realtime_spec.rb
|
188
191
|
- spec/spec_helper.rb
|
@@ -316,6 +319,7 @@ summary: Send requests to QM's XMLRPC client and receive human-readable response
|
|
316
319
|
test_files:
|
317
320
|
- spec/queri_spec.rb
|
318
321
|
- spec/realtime/agents_spec.rb
|
322
|
+
- spec/realtime/calls_spec.rb
|
319
323
|
- spec/realtime/queues_spec.rb
|
320
324
|
- spec/realtime/realtime_spec.rb
|
321
325
|
- spec/spec_helper.rb
|