phaxio 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +16 -3
- data/lib/phaxio/client.rb +100 -4
- data/lib/phaxio/version.rb +1 -1
- data/test/support/responses/list_faxes.json +68 -0
- data/test/support/responses/list_numbers.json +22 -0
- data/test/support/responses/provision_number.json +12 -0
- data/test/support/responses/release_number.json +7 -0
- data/test/support/responses/test.pdf +0 -0
- data/test/test_helper.rb +25 -0
- data/test/test_phaxio.rb +31 -9
- metadata +13 -5
- data/test/support/account_status.json +0 -9
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
A Ruby gem for interacting with the [Phaxio API]( https://www.phaxio.com/docs ).
|
4
4
|
|
5
|
-
|
5
|
+
**Note: This gem only runs on Ruby version 1.9.+**
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -35,8 +35,15 @@ To send a fax:
|
|
35
35
|
|
36
36
|
* send_fax - `Phaxio.send_fax(to: "0123456789", filename: "test.pdf")`
|
37
37
|
* test_receive - `Phaxio.test_receive(filename: "test_file.pdf")`
|
38
|
-
*
|
39
|
-
*
|
38
|
+
* provision_number - `Phaxio.provision_number(area_code: 802)`
|
39
|
+
* release_number - `Phaxio.release_number(number: "8021112222")`
|
40
|
+
* list_numbers - `Phaxio.list_numbers(area_code: 802)`
|
41
|
+
* get_fax_file - `Phaxio.get_fax_file(id: 123456, type: p)`
|
42
|
+
* list_faxes - `Phaxio.list_numbers(area_code: 802)`
|
43
|
+
* list_faxes - `Phaxio.list_faxes(start: Time.now - 48000,
|
44
|
+
end: Time.now)`
|
45
|
+
* get_fax_status - `Phaxio.get_fax_status(id: 123456)`
|
46
|
+
* cancel_fax - `Phaxio.cancel_fax(id: 123456)`
|
40
47
|
* get_account_status - `Phaxio.get_account_status`
|
41
48
|
|
42
49
|
### Example
|
@@ -51,6 +58,12 @@ To send a fax:
|
|
51
58
|
@fax = Phaxio.send_fax(to: '15555555555', string_data: "hello world")
|
52
59
|
Phaxio.get_fax_status(id: @fax["faxId"])
|
53
60
|
|
61
|
+
# Get a Fax and save it as a PDF
|
62
|
+
@pdf = Phaxio.get_fax_file(id: @fax["faxId"], type: "p")
|
63
|
+
File.open("received_test.pdf", "w") do |file|
|
64
|
+
file << @pdf
|
65
|
+
end
|
66
|
+
|
54
67
|
## Contributing
|
55
68
|
|
56
69
|
1. Fork it
|
data/lib/phaxio/client.rb
CHANGED
@@ -65,7 +65,6 @@ module Phaxio
|
|
65
65
|
# Returns a HTTParty::Response object containing a success bool,
|
66
66
|
# a String message, and an in faxID.
|
67
67
|
def send_fax(options)
|
68
|
-
options.merge!({api_key: api_key, api_secret: api_secret})
|
69
68
|
send_post("/send", options)
|
70
69
|
end
|
71
70
|
|
@@ -86,10 +85,109 @@ module Phaxio
|
|
86
85
|
# Returns a HTTParty::Response object containing a success bool
|
87
86
|
# and a String message.
|
88
87
|
def test_receive(options)
|
89
|
-
options.merge!({api_key: api_key, api_secret: api_secret})
|
90
88
|
send_post("/testReceive", options)
|
91
89
|
end
|
92
90
|
|
91
|
+
# Public: Provision a phone number that you can use to receive faxes in
|
92
|
+
# your Phaxio account.
|
93
|
+
#
|
94
|
+
# options - The Hash options used to refine the selection (default: {}):
|
95
|
+
# area_code - The integer area code of the number you'd like
|
96
|
+
# to provision (required).
|
97
|
+
# callback_url - A callback URL that Phaxio will post to when a
|
98
|
+
# fax is received by this number. This will
|
99
|
+
# override the global receive callback URL, if you
|
100
|
+
# have one set (optional).
|
101
|
+
#
|
102
|
+
# Examples
|
103
|
+
#
|
104
|
+
# Phaxio.provision_number(area_code: 802)
|
105
|
+
#
|
106
|
+
# Returns a HTTParty::Response object containing a success bool, a string
|
107
|
+
# message, and data containing the phone number, city, state, cost,
|
108
|
+
# last_billed_at, and the date the number was provisioned at.
|
109
|
+
def provision_number(options)
|
110
|
+
send_post("/provisionNumber", options)
|
111
|
+
end
|
112
|
+
|
113
|
+
# Public: Release a phone number that you no longer need. Once a phone
|
114
|
+
# number is released you will no longer be charged for it.
|
115
|
+
#
|
116
|
+
# options - The Hash options used to refine the selection (default: {}):
|
117
|
+
# number - The String of the phone number you want to release
|
118
|
+
# (required).
|
119
|
+
#
|
120
|
+
# Examples
|
121
|
+
#
|
122
|
+
# Phaxio.release_number(number: "8021112222")
|
123
|
+
#
|
124
|
+
# Returns a HTTParty::Response object containing a success bool and a
|
125
|
+
# string message.
|
126
|
+
def release_number(options)
|
127
|
+
send_post("/releaseNumber", options)
|
128
|
+
end
|
129
|
+
|
130
|
+
# Public: Get a detailed list of the phone numbers you current own on
|
131
|
+
# Phaxio.
|
132
|
+
#
|
133
|
+
# options - The Hash options used to refne th selection (default: {}):
|
134
|
+
# area_code - An integer area code you'd like to filter by
|
135
|
+
# (optional).
|
136
|
+
# number - A String phone number you'd like to retrieve
|
137
|
+
# (optional).
|
138
|
+
#
|
139
|
+
# Examples
|
140
|
+
#
|
141
|
+
# Phaxio.list_numbers # list all the numbers you own
|
142
|
+
#
|
143
|
+
# Phaxio.list_numbers(area_code: 802) # list all numbers in the 802 area
|
144
|
+
#
|
145
|
+
# Phaxio.list_numbers(number: "8021112222") # show specific number detail
|
146
|
+
#
|
147
|
+
# Returns a HTTParty::Reponse object containing a success bool, a message,
|
148
|
+
# and the data attributes containing the queried phone number(s) details.
|
149
|
+
def list_numbers(options = {})
|
150
|
+
send_post("/numberList", options)
|
151
|
+
end
|
152
|
+
|
153
|
+
# Public: Get an image thumbnail or PDF file for a fax. For images to work
|
154
|
+
# file storage must not be disabled with Phaxio.
|
155
|
+
#
|
156
|
+
# options - The Hash options used to refine the selection (default: {}):
|
157
|
+
# id - The integer fax id of the fax you wish to retreive
|
158
|
+
# (required).
|
159
|
+
# type - An enum for the type return, defaults to 'p' (optional):
|
160
|
+
# s - Small JPG format thumbnail of the fax, 129 x 167 px.
|
161
|
+
# l - Large JPG format thumbnail of the fax, 300 x 388 px.
|
162
|
+
# p - PDF version of the fax (default).
|
163
|
+
#
|
164
|
+
# Examples
|
165
|
+
#
|
166
|
+
# Phaxio.get_fax_file(id: 1234, type: p)
|
167
|
+
# Phaxio.get_fax_file(id: 3254, type: l)
|
168
|
+
#
|
169
|
+
# Returns the fax as the type specified in the call, defaults to PDF.
|
170
|
+
def get_fax_file(options)
|
171
|
+
send_post("/faxFile", options)
|
172
|
+
end
|
173
|
+
|
174
|
+
# Public: List faxes within the specified time range.
|
175
|
+
#
|
176
|
+
# options - The Hash options used to refine the selection (default: {}):
|
177
|
+
# start - The Unix Timestamp for the beginning of the range
|
178
|
+
# (required).
|
179
|
+
# end - The Unix Timestamp for the end of the range (required).
|
180
|
+
#
|
181
|
+
# Examples
|
182
|
+
#
|
183
|
+
# Phaxio.list_faxes(start: 1293861600, end: 1294034400)
|
184
|
+
#
|
185
|
+
# Returns a HTTParty::Response object containing a success bool, a string
|
186
|
+
# message, paging information, and the fax data.
|
187
|
+
def list_faxes(options)
|
188
|
+
send_post("/faxList", options)
|
189
|
+
end
|
190
|
+
|
93
191
|
# Public: Get the status of a specific fax.
|
94
192
|
#
|
95
193
|
# options - The Hash options used to refine the selection (default: {}):
|
@@ -107,7 +205,6 @@ module Phaxio
|
|
107
205
|
raise StandardError, "You must include a fax id."
|
108
206
|
end
|
109
207
|
|
110
|
-
options.merge!({api_key: api_key, api_secret: api_secret})
|
111
208
|
send_post("/faxStatus", options)
|
112
209
|
end
|
113
210
|
|
@@ -123,7 +220,6 @@ module Phaxio
|
|
123
220
|
# Returns a HTTParty::Response object containing a success bool
|
124
221
|
# and a String message.
|
125
222
|
def cancel_fax(options)
|
126
|
-
options.merge!({api_key: api_key, api_secret: api_secret})
|
127
223
|
send_post("/faxCancel", options)
|
128
224
|
end
|
129
225
|
|
data/lib/phaxio/version.rb
CHANGED
@@ -0,0 +1,68 @@
|
|
1
|
+
{
|
2
|
+
"success":true,
|
3
|
+
"message":"Retrieved faxes successfully",
|
4
|
+
"paging":{
|
5
|
+
"max_per_page":1000,
|
6
|
+
"page":1,
|
7
|
+
"total_pages":1,
|
8
|
+
"total_results":3
|
9
|
+
},
|
10
|
+
"data":[
|
11
|
+
{
|
12
|
+
"id":123456,
|
13
|
+
"num_pages":3,
|
14
|
+
"cost":21,
|
15
|
+
"direction":"sent",
|
16
|
+
"status":"success",
|
17
|
+
"is_test":true,
|
18
|
+
"requested_at":1293910680,
|
19
|
+
"completed_at":1293911100,
|
20
|
+
"recipients":[
|
21
|
+
{
|
22
|
+
"number":"4141234567",
|
23
|
+
"status":"success",
|
24
|
+
"completed_at":1293911100
|
25
|
+
}
|
26
|
+
]
|
27
|
+
},
|
28
|
+
{
|
29
|
+
"id":123457,
|
30
|
+
"num_pages":1,
|
31
|
+
"cost":7,
|
32
|
+
"direction":"sent",
|
33
|
+
"status":"success",
|
34
|
+
"is_test":false,
|
35
|
+
"requested_at":1293984720,
|
36
|
+
"completed_at":1293985800,
|
37
|
+
"recipients":[
|
38
|
+
{
|
39
|
+
"number":"4145554567",
|
40
|
+
"status":"success",
|
41
|
+
"completed_at":1293985800
|
42
|
+
}
|
43
|
+
]
|
44
|
+
},
|
45
|
+
{
|
46
|
+
"id":123458,
|
47
|
+
"num_pages":1,
|
48
|
+
"cost":14,
|
49
|
+
"direction":"sent",
|
50
|
+
"status":"success",
|
51
|
+
"is_test":false,
|
52
|
+
"requested_at":1294094700,
|
53
|
+
"completed_at":1294095000,
|
54
|
+
"recipients":[
|
55
|
+
{
|
56
|
+
"number":"4145554568",
|
57
|
+
"status":"success",
|
58
|
+
"completed_at":1294095000
|
59
|
+
},
|
60
|
+
{
|
61
|
+
"number":"4145554567",
|
62
|
+
"status":"success",
|
63
|
+
"completed_at":1293985800
|
64
|
+
}
|
65
|
+
]
|
66
|
+
}
|
67
|
+
]
|
68
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
"success":true,
|
3
|
+
"message":"Retrieved user phone numbers successfully",
|
4
|
+
"data":[
|
5
|
+
{
|
6
|
+
"number":"8021112222",
|
7
|
+
"city":"Burlington",
|
8
|
+
"state":"Vermont",
|
9
|
+
"cost":200,
|
10
|
+
"last_billed_at":"2012-10-11 10:51:33",
|
11
|
+
"provisioned_at":"2012-10-11 10:51:33"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"number":"8023334444",
|
15
|
+
"city":"Montpelier",
|
16
|
+
"state":"Vermont",
|
17
|
+
"cost":200,
|
18
|
+
"last_billed_at":"2012-10-11 10:51:33",
|
19
|
+
"provisioned_at":"2012-10-11 10:51:33"
|
20
|
+
}
|
21
|
+
]
|
22
|
+
}
|
Binary file
|
data/test/test_helper.rb
CHANGED
@@ -3,6 +3,11 @@ require "test/unit"
|
|
3
3
|
require "fakeweb"
|
4
4
|
require "lib/phaxio"
|
5
5
|
|
6
|
+
Phaxio.config do |config|
|
7
|
+
config.api_key = "12345678910"
|
8
|
+
config.api_secret = "10987654321"
|
9
|
+
end
|
10
|
+
|
6
11
|
FakeWeb.register_uri(:post, "https://api.phaxio.com/v1/send",
|
7
12
|
:body => File.open("test/support/responses/send_success.json").read,
|
8
13
|
:content_type => "application/json")
|
@@ -15,6 +20,26 @@ FakeWeb.register_uri(:post, "https://api.phaxio.com/v1/testReceive",
|
|
15
20
|
:body => File.open("test/support/responses/test_receive.json").read,
|
16
21
|
:content_type => "application/json")
|
17
22
|
|
23
|
+
FakeWeb.register_uri(:post, "https://api.phaxio.com/v1/provisionNumber",
|
24
|
+
:body => File.open("test/support/responses/provision_number.json").read,
|
25
|
+
:content_type => "application/json")
|
26
|
+
|
27
|
+
FakeWeb.register_uri(:post, "https://api.phaxio.com/v1/releaseNumber",
|
28
|
+
:body => File.open("test/support/responses/release_number.json").read,
|
29
|
+
:content_type => "application/json")
|
30
|
+
|
31
|
+
FakeWeb.register_uri(:post, "https://api.phaxio.com/v1/numberList",
|
32
|
+
:body => File.open("test/support/responses/list_numbers.json").read,
|
33
|
+
:content_type => "application/json")
|
34
|
+
|
35
|
+
FakeWeb.register_uri(:post, "https://api.phaxio.com/v1/faxFile",
|
36
|
+
:body => File.open("test/support/responses/test.pdf").read,
|
37
|
+
:content_type => "application/pdf")
|
38
|
+
|
39
|
+
FakeWeb.register_uri(:post, "https://api.phaxio.com/v1/faxList",
|
40
|
+
:body => File.open("test/support/responses/list_faxes.json").read,
|
41
|
+
:content_type => "application/json")
|
42
|
+
|
18
43
|
FakeWeb.register_uri(:post, "https://api.phaxio.com/v1/faxStatus",
|
19
44
|
:body => File.open("test/support/responses/fax_status_success.json").read,
|
20
45
|
:content_type => "application/json")
|
data/test/test_phaxio.rb
CHANGED
@@ -1,13 +1,6 @@
|
|
1
1
|
require_relative "test_helper"
|
2
2
|
|
3
3
|
class TestPhaxio < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
Phaxio.config do |config|
|
6
|
-
config.api_key = "12345678910"
|
7
|
-
config.api_secret = "10987654321"
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
4
|
def test_config
|
12
5
|
assert_equal "12345678910", Phaxio.api_key
|
13
6
|
assert_equal "10987654321", Phaxio.api_secret
|
@@ -29,14 +22,43 @@ class TestPhaxio < Test::Unit::TestCase
|
|
29
22
|
assert_equal "Test fax received from 234567890. Calling back now...", @response["message"]
|
30
23
|
end
|
31
24
|
|
25
|
+
def test_provision_number
|
26
|
+
@response = Phaxio.provision_number(area_code: 802)
|
27
|
+
assert_equal true, @response["success"]
|
28
|
+
assert_equal "Number provisioned successfully!", @response["message"]
|
29
|
+
assert_equal "Vermont", @response["data"]["state"]
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_release_number
|
33
|
+
@response = Phaxio.release_number(number: "8021112222")
|
34
|
+
assert_equal true, @response["success"]
|
35
|
+
assert_equal "Number released successfully!", @response["message"]
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_list_numbers
|
39
|
+
@response = Phaxio.list_numbers(area_code: 802)
|
40
|
+
assert_equal true, @response["success"]
|
41
|
+
assert_equal "Retrieved user phone numbers successfully", @response["message"]
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_get_fax_file
|
45
|
+
@response_pdf = Phaxio.get_fax_file(id: 1234, type: p)
|
46
|
+
assert_equal 6725, @response_pdf.size
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_list_faxes
|
50
|
+
@response = Phaxio.list_faxes(start: 1293861600, end: 1294034400)
|
51
|
+
assert_equal true, @response["success"]
|
52
|
+
end
|
53
|
+
|
32
54
|
def test_get_fax_status
|
33
|
-
@response = Phaxio.get_fax_status(id:
|
55
|
+
@response = Phaxio.get_fax_status(id: 123456)
|
34
56
|
assert_equal true, @response["success"]
|
35
57
|
assert_equal "Retrieved fax successfully", @response["message"]
|
36
58
|
end
|
37
59
|
|
38
60
|
def test_cancel_fax
|
39
|
-
@response = Phaxio.cancel_fax(id:
|
61
|
+
@response = Phaxio.cancel_fax(id: 123456)
|
40
62
|
assert_equal true, @response["success"]
|
41
63
|
assert_equal "Fax canceled successfully.", @response["message"]
|
42
64
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phaxio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-10-
|
13
|
+
date: 2012-10-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httmultiparty
|
@@ -79,12 +79,16 @@ files:
|
|
79
79
|
- lib/phaxio/client.rb
|
80
80
|
- lib/phaxio/version.rb
|
81
81
|
- phaxio.gemspec
|
82
|
-
- test/support/account_status.json
|
83
82
|
- test/support/responses/account_status.json
|
84
83
|
- test/support/responses/cancel_success.json
|
85
84
|
- test/support/responses/fax_status_success.json
|
85
|
+
- test/support/responses/list_faxes.json
|
86
|
+
- test/support/responses/list_numbers.json
|
87
|
+
- test/support/responses/provision_number.json
|
88
|
+
- test/support/responses/release_number.json
|
86
89
|
- test/support/responses/send_failure.json
|
87
90
|
- test/support/responses/send_success.json
|
91
|
+
- test/support/responses/test.pdf
|
88
92
|
- test/support/responses/test_receive.json
|
89
93
|
- test/test_helper.rb
|
90
94
|
- test/test_phaxio.rb
|
@@ -108,17 +112,21 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
112
|
version: '0'
|
109
113
|
requirements: []
|
110
114
|
rubyforge_project:
|
111
|
-
rubygems_version: 1.8.
|
115
|
+
rubygems_version: 1.8.24
|
112
116
|
signing_key:
|
113
117
|
specification_version: 3
|
114
118
|
summary: A Ruby Gem for interacting with Phaxio's JSON API
|
115
119
|
test_files:
|
116
|
-
- test/support/account_status.json
|
117
120
|
- test/support/responses/account_status.json
|
118
121
|
- test/support/responses/cancel_success.json
|
119
122
|
- test/support/responses/fax_status_success.json
|
123
|
+
- test/support/responses/list_faxes.json
|
124
|
+
- test/support/responses/list_numbers.json
|
125
|
+
- test/support/responses/provision_number.json
|
126
|
+
- test/support/responses/release_number.json
|
120
127
|
- test/support/responses/send_failure.json
|
121
128
|
- test/support/responses/send_success.json
|
129
|
+
- test/support/responses/test.pdf
|
122
130
|
- test/support/responses/test_receive.json
|
123
131
|
- test/test_helper.rb
|
124
132
|
- test/test_phaxio.rb
|