qui 0.8.3 → 0.8.5
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 +21 -5
- data/lib/qui/{queuemetrics_agent.rb → agent.rb} +13 -8
- data/lib/qui/base.rb +22 -0
- data/lib/qui/queue.rb +36 -0
- data/lib/qui/user.rb +26 -0
- data/lib/qui.rb +4 -5
- data/qui.gemspec +6 -3
- data/spec/lib/agent_spec.rb +13 -0
- data/spec/lib/{queuemetrics_spec.rb → base_spec.rb} +5 -5
- data/spec/lib/{queuemetrics_queue_spec.rb → queue_spec.rb} +7 -7
- data/spec/lib/user_spec.rb +13 -0
- metadata +15 -17
- data/lib/qui/queuemetrics.rb +0 -18
- data/lib/qui/queuemetrics_queue.rb +0 -32
- data/lib/qui/queuemetrics_record.rb +0 -27
- data/lib/qui/queuemetrics_user.rb +0 -19
- data/lib/qui/version.rb +0 -3
- data/spec/lib/queuemetrics_agent_spec.rb +0 -13
- data/spec/lib/queuemetrics_user_spec.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33ced5ed8190bac66954a479a646fe54be968162
|
4
|
+
data.tar.gz: ab2286b5efc9c26bb52d31278f33c4ef61ab19c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e123202253baca94111462b049c8c511848f7271bc08c0b8892170648f6dbdd19e356a5f19d7391f54287955ef3d935ce1b6a786e565bbe807df7f2e073ecf25
|
7
|
+
data.tar.gz: e8d75deef63de86c07423d30cf9309d39ae410631764b295991bf0014258deecd1580a5240515255bcb50a37a5599746300822bd0a468ee6300b8664a73c32b2
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Qui
|
2
2
|
|
3
|
-
|
3
|
+
Qui, or Queuemetrics User Integration, is a gem that creates an ActiveRecord wrapper for manipulating users, agents, and queues within the Queuemetrics calling platform.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -16,13 +16,29 @@ Or install it yourself as:
|
|
16
16
|
|
17
17
|
$ gem install qui
|
18
18
|
|
19
|
-
##
|
19
|
+
## Usage
|
20
20
|
|
21
|
-
|
21
|
+
First, connect to your Queuemetrics database:
|
22
22
|
|
23
|
-
|
23
|
+
Qui::Base.new("192.168.1.100","username","password")
|
24
|
+
|
25
|
+
Then simply create users, agents and queues using QueuemetricsAgent, QueuemetricsUser, and QueuemetricsQueue - all inhereit from ActiveRecord::Base.
|
26
|
+
|
27
|
+
User:
|
28
|
+
|
29
|
+
u = Qui::User.new(login: "Agent/5555", password: "superSECRET", real_name: "Robert Weathers", classe: 4)
|
30
|
+
u.save
|
31
|
+
|
32
|
+
Agent:
|
33
|
+
|
34
|
+
a = Qui::Agent.new(agent_name: "Agent/5555", agent_description: "rweathers", supervised_by: "Mr. Smith")
|
35
|
+
a.save
|
36
|
+
|
37
|
+
You can add queues using ActiveRecord, but can also add or remove agents from queues like below:
|
24
38
|
|
25
|
-
|
39
|
+
q = Qui::Queue.first
|
40
|
+
q.add_agent!("Agent/5555")
|
41
|
+
q.remove_agent!("Agent/4445")
|
26
42
|
|
27
43
|
## Contributing
|
28
44
|
|
@@ -1,8 +1,16 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
module Qui
|
2
|
+
class Agent < ActiveRecord::Base
|
3
|
+
self.table_name = 'agenti_noti'
|
3
4
|
|
4
|
-
|
5
|
-
|
5
|
+
def initialize(options={})
|
6
|
+
if options then
|
7
|
+
super set_defaults(options)
|
8
|
+
else
|
9
|
+
super
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def set_defaults(options)
|
6
14
|
if options[:agent_name] then options[:nome_agente] = options.delete(:agent_name) end
|
7
15
|
if options[:agent_description] then options[:descr_agente] = options.delete(:agent_description) end
|
8
16
|
options[:location] = 3
|
@@ -14,10 +22,7 @@ class QueuemetricsAgent < ActiveRecord::Base
|
|
14
22
|
options[:payroll_code] = " "
|
15
23
|
options[:chiave_agente] = " "
|
16
24
|
options[:sys_dt_modifica] = Time.now.to_s(:db)
|
17
|
-
super(options)
|
18
|
-
else
|
19
|
-
super
|
20
25
|
end
|
26
|
+
|
21
27
|
end
|
22
|
-
|
23
28
|
end
|
data/lib/qui/base.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
|
3
|
+
module Qui
|
4
|
+
class Base
|
5
|
+
|
6
|
+
def self.establish_connection(host, username, password)
|
7
|
+
connection = {
|
8
|
+
:adapter => "mysql2",
|
9
|
+
:host => host,
|
10
|
+
:database => "queuemetrics",
|
11
|
+
:username => username,
|
12
|
+
:password => password,
|
13
|
+
}
|
14
|
+
ActiveRecord::Base.establish_connection connection
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.close_connection
|
18
|
+
ActiveRecord::Base.connection.close
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
data/lib/qui/queue.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
module Qui
|
2
|
+
class Queue < ActiveRecord::Base
|
3
|
+
self.table_name = 'code_possibili'
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
super(options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def add_agent!(userid)
|
10
|
+
if exists_in_queue?(userid) then
|
11
|
+
false
|
12
|
+
else
|
13
|
+
self.agenti_membri += "|#{userid}"
|
14
|
+
self.save
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def remove_agent!(userid)
|
19
|
+
if exists_in_queue?(userid) then
|
20
|
+
members = self.agenti_membri.split("|")
|
21
|
+
members.delete userid
|
22
|
+
self.agenti_membri = members.join("|")
|
23
|
+
self.save
|
24
|
+
else
|
25
|
+
false
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def exists_in_queue?(userid)
|
32
|
+
if self.agenti_membri.include?(userid) then true else false end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
data/lib/qui/user.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Qui
|
2
|
+
class User < ActiveRecord::Base
|
3
|
+
self.table_name = 'arch_users'
|
4
|
+
|
5
|
+
def initialize(options={})
|
6
|
+
if options then
|
7
|
+
super set_defaults(options)
|
8
|
+
else
|
9
|
+
super
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def set_defaults(options)
|
16
|
+
options[:abilitato] = "1"
|
17
|
+
options[:masterkey] = "0"
|
18
|
+
options[:n_logon] = "0"
|
19
|
+
options[:chiavi_utente] = " "
|
20
|
+
options[:ultimo_logon] = Time.now.to_s(:db)
|
21
|
+
options[:sys_dt_creazione] = Time.now.to_s(:db)
|
22
|
+
options[:sys_dt_modifica] = Time.now.to_s(:db)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
data/lib/qui.rb
CHANGED
@@ -2,10 +2,9 @@
|
|
2
2
|
require "active_record"
|
3
3
|
|
4
4
|
#classes
|
5
|
-
require "qui/
|
6
|
-
require "qui/
|
7
|
-
require "qui/
|
8
|
-
require "qui/
|
9
|
-
require "qui/queuemetrics_queue"
|
5
|
+
require "qui/base"
|
6
|
+
require "qui/user"
|
7
|
+
require "qui/agent"
|
8
|
+
require "qui/queue"
|
10
9
|
|
11
10
|
module Qui end
|
data/qui.gemspec
CHANGED
@@ -1,15 +1,18 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'qui/
|
4
|
+
require 'qui/base'
|
5
|
+
require 'qui/agent'
|
6
|
+
require 'qui/user'
|
7
|
+
require 'qui/queue'
|
5
8
|
|
6
9
|
Gem::Specification.new do |spec|
|
7
10
|
spec.name = "qui"
|
8
|
-
spec.version =
|
11
|
+
spec.version = "0.8.5"
|
9
12
|
spec.authors = ["Kevin Collette"]
|
10
13
|
spec.email = ["kevcollette@gmail.com"]
|
11
14
|
spec.description = %q{Qui, or Queuemetrics User Integration, is a gem that creates an ActiveRecord wrapper for manipulating users, agents, and queues within the Queuemetrics calling platform.}
|
12
|
-
spec.summary = %q{Qui creates and manages Queuemetrics users.}
|
15
|
+
spec.summary = %q{Qui creates and manages Queuemetrics users and queues.}
|
13
16
|
spec.homepage = ""
|
14
17
|
spec.license = "MIT"
|
15
18
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
require 'qui/base'
|
3
|
+
require 'qui/agent'
|
4
|
+
|
5
|
+
describe Qui::Agent do
|
6
|
+
|
7
|
+
it "should wrap ActiveRecord" do
|
8
|
+
#@q = YAML::load_file(File.join(__dir__, 'config.yml'))
|
9
|
+
#Qui::Base.establish_connection(@q["host"], @q["username"], @q["password"])
|
10
|
+
Qui::Agent.superclass.should == ActiveRecord::Base
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'yaml'
|
3
|
-
require 'qui/
|
4
|
-
require 'qui/
|
3
|
+
require 'qui/base'
|
4
|
+
require 'qui/agent'
|
5
5
|
require 'active_record'
|
6
6
|
|
7
|
-
describe
|
7
|
+
describe Qui::Base do
|
8
8
|
|
9
9
|
before do
|
10
10
|
@q = YAML::load_file(File.join(__dir__, 'config.yml'))
|
@@ -13,7 +13,7 @@ describe Queuemetrics do
|
|
13
13
|
#connected? returns opposite bool
|
14
14
|
describe ".establish_connection" do
|
15
15
|
it "establishes a connection to a Queuemetrics database." do
|
16
|
-
|
16
|
+
Qui::Base.establish_connection(@q["host"], @q["username"], @q["password"])
|
17
17
|
ActiveRecord::Base.connected?.should be_false
|
18
18
|
ActiveRecord::Base.connection.current_database.should eq("queuemetrics")
|
19
19
|
end
|
@@ -21,7 +21,7 @@ describe Queuemetrics do
|
|
21
21
|
|
22
22
|
describe ".close_connection" do
|
23
23
|
it "closes a connection to the Queuemetrics database." do
|
24
|
-
|
24
|
+
Qui::Base.close_connection
|
25
25
|
ActiveRecord::Base.connected?.should be_true
|
26
26
|
end
|
27
27
|
end
|
@@ -1,18 +1,18 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'qui/
|
3
|
-
require 'qui/
|
2
|
+
require 'qui/base'
|
3
|
+
require 'qui/queue'
|
4
4
|
|
5
|
-
describe
|
5
|
+
describe Qui::Queue do
|
6
6
|
|
7
7
|
before do
|
8
|
-
@queue =
|
8
|
+
@queue = Qui::Queue.first
|
9
9
|
@userid = 'agent/128461849'
|
10
10
|
end
|
11
11
|
|
12
12
|
it "should wrap ActiveRecord" do
|
13
|
-
@q = YAML::load_file(File.join(__dir__, 'config.yml'))
|
14
|
-
|
15
|
-
|
13
|
+
# @q = YAML::load_file(File.join(__dir__, 'config.yml'))
|
14
|
+
# Qui::Base.establish_connection(@q["host"], @q["username"], @q["password"])
|
15
|
+
Qui::Queue.superclass.should == ActiveRecord::Base
|
16
16
|
end
|
17
17
|
|
18
18
|
describe ".add_agent!" do
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'active_record'
|
2
|
+
require 'qui/base'
|
3
|
+
require 'qui/user'
|
4
|
+
|
5
|
+
describe Qui::User do
|
6
|
+
|
7
|
+
it "should wrap ActiveRecord" do
|
8
|
+
# @q = YAML::load_file(File.join(__dir__, 'config.yml'))
|
9
|
+
# Queuemetrics.establish_connection(@q["host"], @q["username"], @q["password"])
|
10
|
+
Qui::User.superclass.should == ActiveRecord::Base
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Collette
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -83,18 +83,16 @@ files:
|
|
83
83
|
- README.md
|
84
84
|
- Rakefile
|
85
85
|
- lib/qui.rb
|
86
|
-
- lib/qui/
|
87
|
-
- lib/qui/
|
88
|
-
- lib/qui/
|
89
|
-
- lib/qui/
|
90
|
-
- lib/qui/queuemetrics_user.rb
|
91
|
-
- lib/qui/version.rb
|
86
|
+
- lib/qui/agent.rb
|
87
|
+
- lib/qui/base.rb
|
88
|
+
- lib/qui/queue.rb
|
89
|
+
- lib/qui/user.rb
|
92
90
|
- qui.gemspec
|
91
|
+
- spec/lib/agent_spec.rb
|
92
|
+
- spec/lib/base_spec.rb
|
93
93
|
- spec/lib/config.yml
|
94
|
-
- spec/lib/
|
95
|
-
- spec/lib/
|
96
|
-
- spec/lib/queuemetrics_spec.rb
|
97
|
-
- spec/lib/queuemetrics_user_spec.rb
|
94
|
+
- spec/lib/queue_spec.rb
|
95
|
+
- spec/lib/user_spec.rb
|
98
96
|
- spec/spec_helper.rb
|
99
97
|
homepage: ''
|
100
98
|
licenses:
|
@@ -119,11 +117,11 @@ rubyforge_project:
|
|
119
117
|
rubygems_version: 2.0.2
|
120
118
|
signing_key:
|
121
119
|
specification_version: 4
|
122
|
-
summary: Qui creates and manages Queuemetrics users.
|
120
|
+
summary: Qui creates and manages Queuemetrics users and queues.
|
123
121
|
test_files:
|
122
|
+
- spec/lib/agent_spec.rb
|
123
|
+
- spec/lib/base_spec.rb
|
124
124
|
- spec/lib/config.yml
|
125
|
-
- spec/lib/
|
126
|
-
- spec/lib/
|
127
|
-
- spec/lib/queuemetrics_spec.rb
|
128
|
-
- spec/lib/queuemetrics_user_spec.rb
|
125
|
+
- spec/lib/queue_spec.rb
|
126
|
+
- spec/lib/user_spec.rb
|
129
127
|
- spec/spec_helper.rb
|
data/lib/qui/queuemetrics.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
class Queuemetrics
|
2
|
-
|
3
|
-
def self.establish_connection(host, username, password)
|
4
|
-
connection = {
|
5
|
-
:adapter => "mysql2",
|
6
|
-
:host => host,
|
7
|
-
:database => "queuemetrics",
|
8
|
-
:username => username,
|
9
|
-
:password => password,
|
10
|
-
}
|
11
|
-
ActiveRecord::Base.establish_connection connection
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.close_connection
|
15
|
-
ActiveRecord::Base.connection.close
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
class QueuemetricsQueue < ActiveRecord::Base
|
2
|
-
self.table_name = 'code_possibili'
|
3
|
-
|
4
|
-
def initialize(options={}) super(options) end
|
5
|
-
|
6
|
-
def add_agent!(userid)
|
7
|
-
if exists_in_queue?(userid) then
|
8
|
-
false
|
9
|
-
else
|
10
|
-
self.agenti_membri += "|#{userid}"
|
11
|
-
self.save
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def remove_agent!(userid)
|
16
|
-
if exists_in_queue?(userid) then
|
17
|
-
members = self.agenti_membri.split("|")
|
18
|
-
members.delete userid
|
19
|
-
self.agenti_membri = members.join("|")
|
20
|
-
self.save
|
21
|
-
else
|
22
|
-
false
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
private
|
27
|
-
|
28
|
-
def exists_in_queue?(userid)
|
29
|
-
if self.agenti_membri.include?(userid) then true else false end
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module QueuemetricsRecord
|
2
|
-
include ActiveRecord::Base
|
3
|
-
|
4
|
-
def save
|
5
|
-
if self.exists? then
|
6
|
-
message = false
|
7
|
-
else
|
8
|
-
message = true
|
9
|
-
begin
|
10
|
-
self.class.create(self.db_attributes)
|
11
|
-
rescue Exception => e
|
12
|
-
message = false
|
13
|
-
end
|
14
|
-
end
|
15
|
-
return message
|
16
|
-
end
|
17
|
-
|
18
|
-
def delete
|
19
|
-
if self.exists? then
|
20
|
-
u = self.class.where(:nome_agente => "Agent/#{@userid}", :descr_agente => @username).first
|
21
|
-
u.destroy
|
22
|
-
else
|
23
|
-
false
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
class QueuemetricsUser < ActiveRecord::Base
|
2
|
-
self.table_name = 'arch_users'
|
3
|
-
|
4
|
-
def initialize(options={})
|
5
|
-
if options then
|
6
|
-
options[:abilitato] = "1"
|
7
|
-
options[:masterkey] = "0"
|
8
|
-
options[:n_logon] = "0"
|
9
|
-
options[:chiavi_utente] = " "
|
10
|
-
options[:ultimo_logon] = Time.now.to_s(:db)
|
11
|
-
options[:sys_dt_creazione] = Time.now.to_s(:db)
|
12
|
-
options[:sys_dt_modifica] = Time.now.to_s(:db)
|
13
|
-
super(options)
|
14
|
-
else
|
15
|
-
super
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
data/lib/qui/version.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'active_record'
|
2
|
-
require 'qui/queuemetrics'
|
3
|
-
require 'qui/queuemetrics_agent'
|
4
|
-
|
5
|
-
describe QueuemetricsAgent do
|
6
|
-
|
7
|
-
it "should wrap ActiveRecord" do
|
8
|
-
@q = YAML::load_file(File.join(__dir__, 'config.yml'))
|
9
|
-
Queuemetrics.establish_connection(@q["host"], @q["username"], @q["password"])
|
10
|
-
QueuemetricsAgent.superclass.should == ActiveRecord::Base
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'active_record'
|
2
|
-
require 'qui/queuemetrics'
|
3
|
-
require 'qui/queuemetrics_user'
|
4
|
-
|
5
|
-
describe QueuemetricsUser do
|
6
|
-
|
7
|
-
it "should wrap ActiveRecord" do
|
8
|
-
@q = YAML::load_file(File.join(__dir__, 'config.yml'))
|
9
|
-
Queuemetrics.establish_connection(@q["host"], @q["username"], @q["password"])
|
10
|
-
QueuemetricsAgent.superclass.should == ActiveRecord::Base
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|