five9 0.0.5 → 0.0.7
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.
- data/README.md +5 -3
- data/five9.gemspec +1 -1
- data/lib/five9/acd_status.rb +5 -3
- data/lib/five9/agent_stats.rb +4 -2
- data/lib/five9/inbound_campaign_stats.rb +4 -2
- data/lib/five9/statistics.rb +14 -1
- data/lib/five9/version.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -21,9 +21,11 @@ Or install it yourself as:
|
|
21
21
|
In order to use this you will have to have an active account with [five9](www.five9.com).
|
22
22
|
|
23
23
|
agent_stats = Five9::AgentStats.new("exampleuser","examplepassword")
|
24
|
-
agent_stats.setSessionParams(session={rolling_period: "Today", shift_start: 25200000, statistics_range: "CurrentDay", time_zone: -21600000})
|
25
|
-
|
26
|
-
|
24
|
+
agent_stats.setSessionParams(session={rolling_period: "Today", shift_start: 25200000, statistics_range: "CurrentDay", time_zone: -21600000}) #the numbers are in milliseconds.
|
25
|
+
agent_stats.getStatistics(["Total Calls","Avg Handle Time"]) #leave empty to return all stats.
|
26
|
+
puts agent_stats.stats
|
27
|
+
agent_stats.getStatisticsUpdate
|
28
|
+
puts agent_stats.stats
|
27
29
|
|
28
30
|
|
29
31
|
For more details check out [Five9's API](http://www.five9.com/for_developers/call-center-cloud-computing.htm) for more details.
|
data/five9.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.email = ["dhahn@ctatechs.com"]
|
11
11
|
gem.description = %q{Rubygem integration with five9 API}
|
12
12
|
gem.summary = %q{Write a gem summary}
|
13
|
-
gem.homepage = ""
|
13
|
+
gem.homepage = "https://github.com/CorporateTechnologyAdvantage/five9"
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
16
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
data/lib/five9/acd_status.rb
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
module Five9
|
2
2
|
class AcdStatus < Statistics
|
3
|
-
|
3
|
+
attr_accessor :stats
|
4
|
+
def initialize(username,password)
|
5
|
+
@stats = nil
|
4
6
|
super(username,password)
|
5
7
|
end
|
6
8
|
|
7
9
|
def getStatistics(columns=[])
|
8
|
-
super("ACDStatus",columns)
|
10
|
+
@stats = super("ACDStatus",columns)
|
9
11
|
end
|
10
12
|
|
11
13
|
def getStatisticsUpdate(long_polling_timeout=10000)
|
12
|
-
super("ACDStatus",long_polling_timeout)
|
14
|
+
super("ACDStatus","Skill Name",long_polling_timeout)
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
data/lib/five9/agent_stats.rb
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
module Five9
|
2
2
|
class AgentStats < Statistics
|
3
|
+
attr_accessor :stats
|
3
4
|
def initialize(username,password)
|
5
|
+
@stats = nil
|
4
6
|
super(username,password)
|
5
7
|
end
|
6
8
|
|
7
9
|
def getStatistics(columns=[])
|
8
|
-
super("AgentStatistics",columns)
|
10
|
+
@stats = super("AgentStatistics",columns)
|
9
11
|
end
|
10
12
|
|
11
13
|
def getStatisticsUpdate(long_polling_timeout=10000)
|
12
|
-
super("AgentStatistics",long_polling_timeout)
|
14
|
+
super("AgentStatistics","Username",long_polling_timeout)
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
@@ -1,15 +1,17 @@
|
|
1
1
|
module Five9
|
2
2
|
class InboundCampaignStats < Statistics
|
3
|
+
attr_accessor :stats
|
3
4
|
def initialize(username,password)
|
5
|
+
@stats = nil
|
4
6
|
super(username,password)
|
5
7
|
end
|
6
8
|
|
7
9
|
def getStatistics(columns=[])
|
8
|
-
super("InboundCampaignStatistics",columns
|
10
|
+
@stats = super("InboundCampaignStatistics",columns)
|
9
11
|
end
|
10
12
|
|
11
13
|
def getStatisticsUpdate(long_polling_timeout=10000)
|
12
|
-
super("InboundCampaignStatistics",long_polling_timeout)
|
14
|
+
super("InboundCampaignStatistics","Campaign Name",long_polling_timeout)
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
data/lib/five9/statistics.rb
CHANGED
@@ -21,7 +21,7 @@ module Five9
|
|
21
21
|
return stats
|
22
22
|
end
|
23
23
|
|
24
|
-
def getStatisticsUpdate(statistic_type,long_polling_timeout=10000)
|
24
|
+
def getStatisticsUpdate(statistic_type, object_name,long_polling_timeout=10000)
|
25
25
|
begin
|
26
26
|
prev_timestamp = @last_working_timestamp
|
27
27
|
response = @client.request :ser, :getStatisticsUpdate, body: {statisticType: statistic_type, previousTimestamp: prev_timestamp, longPollingTimeout: long_polling_timeout}
|
@@ -30,6 +30,7 @@ module Five9
|
|
30
30
|
prev_timestamp = data[0][:get_statistics_update_response][:return][:last_timestamp]
|
31
31
|
stats = data[0][:get_statistics_update_response][:return][:data_update]
|
32
32
|
@last_working_timestamp = prev_timestamp
|
33
|
+
updateStats(stats,object_name)
|
33
34
|
rescue TypeError => e
|
34
35
|
p e
|
35
36
|
p e.backtrace if !e.message.include?("No Updated Statistics")
|
@@ -37,5 +38,17 @@ module Five9
|
|
37
38
|
end
|
38
39
|
return stats
|
39
40
|
end
|
41
|
+
|
42
|
+
private
|
43
|
+
def updateStats(updated_stats,object_name)
|
44
|
+
if updated_stats.class == Hash
|
45
|
+
@stats.each {|stat| stat[updated_stats[:column_name]] = updated_stats[:column_value] if updated_stats[:object_name] == stat[object_name]}
|
46
|
+
elsif updated_stats.class == Array
|
47
|
+
updated_stats.each do |updated_stat|
|
48
|
+
@stats.each {|stat| stat[updated_stat[:column_name]] = updated_stat[:column_value] if updated_stat[:object_name] == stat[object_name]}
|
49
|
+
end
|
50
|
+
end
|
51
|
+
updated_stats
|
52
|
+
end
|
40
53
|
end
|
41
54
|
end
|
data/lib/five9/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: five9
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -32,7 +32,7 @@ files:
|
|
32
32
|
- lib/five9/provision.rb
|
33
33
|
- lib/five9/statistics.rb
|
34
34
|
- lib/five9/version.rb
|
35
|
-
homepage:
|
35
|
+
homepage: https://github.com/CorporateTechnologyAdvantage/five9
|
36
36
|
licenses: []
|
37
37
|
post_install_message:
|
38
38
|
rdoc_options: []
|