verboice 0.2.2 → 0.3.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.
Files changed (2) hide show
  1. data/lib/verboice.rb +44 -2
  2. metadata +5 -5
data/lib/verboice.rb CHANGED
@@ -12,6 +12,7 @@ require 'net/http'
12
12
  require 'json'
13
13
  require 'rest_client'
14
14
  require 'cgi'
15
+ require 'time'
15
16
  require File.expand_path('../verboice/exception', __FILE__)
16
17
 
17
18
  # Provides access to the Verboice Public API.
@@ -29,8 +30,12 @@ class Verboice
29
30
  }
30
31
  end
31
32
 
32
- def call address, channel = @default_channel, options = {}
33
- args = {:channel => channel, :address => address}
33
+ def call address, options = {}
34
+ args = {:address => address}
35
+
36
+ args[:channel] = options[:channel] || @default_channel
37
+ args[:not_before] = options[:not_before].iso8601 if options[:not_before]
38
+ args[:queue] = options[:queue] if options[:queue]
34
39
 
35
40
  if options[:flow]
36
41
  post "/api/call?#{self.class.to_query args}", options[:flow] do |response, error|
@@ -66,6 +71,35 @@ class Verboice
66
71
  response
67
72
  end
68
73
  end
74
+
75
+ def call_queues
76
+ get_json "/api/call_queues.json"
77
+ end
78
+
79
+ def call_queue(name)
80
+ get_json "/api/call_queues/#{name}.json"
81
+ end
82
+
83
+ def create_call_queue(call_queue)
84
+ post "/api/call_queues", call_queue.to_json do |response, error|
85
+ raise Verboice::Exception.new error.message if error
86
+ response
87
+ end
88
+ end
89
+
90
+ def update_call_queue(name, call_queue)
91
+ put "/api/call_queues/#{name}", call_queue.to_json do |response, error|
92
+ raise Verboice::Exception.new error.message if error
93
+ response
94
+ end
95
+ end
96
+
97
+ def delete_call_queue(name)
98
+ delete "/api/call_queues/#{name}" do |response, error|
99
+ raise Verboice::Exception.new error.message if error
100
+ response
101
+ end
102
+ end
69
103
 
70
104
  private
71
105
 
@@ -94,6 +128,14 @@ class Verboice
94
128
  rescue => ex
95
129
  yield nil, ex
96
130
  end
131
+
132
+ def put(path, data)
133
+ resource = RestClient::Resource.new @url, @options
134
+ resource = resource[path].put(data)
135
+ yield resource, nil
136
+ rescue => ex
137
+ yield nil, ex
138
+ end
97
139
 
98
140
  def delete(path)
99
141
  resource = RestClient::Resource.new @url, @options
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: verboice
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-11-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
16
- requirement: &70200133298780 !ruby/object:Gem::Requirement
16
+ requirement: &70194475148860 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70200133298780
24
+ version_requirements: *70194475148860
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: json
27
- requirement: &70200133297920 !ruby/object:Gem::Requirement
27
+ requirement: &70194475147460 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70200133297920
35
+ version_requirements: *70194475147460
36
36
  description: Access the Verboice API in ruby.
37
37
  email: aromero@manas.com.ar
38
38
  executables: []