phaxio 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6a10449404bdb1df029a52a878f49202589e727d
4
- data.tar.gz: f500188f94760b8300dc2f63b17eb4ad31edc5fa
3
+ metadata.gz: 12ce42728923c83667571c73e2c0320f41a3f579
4
+ data.tar.gz: f6840ec8c126853273bd76f68d3399b3f5a24989
5
5
  SHA512:
6
- metadata.gz: df06285d6e87fbc048f0ebcad0cd5ee608ccfb0b45c6813926f272c4302aa5dc60421445df11bacc6fae2e26a32951912ca201376a56c77bcd2e5fa71e0e5976
7
- data.tar.gz: 9d5bcfa978e6e92317d17d4bb0a31e4cd2f33f57d96f8241721bc581be34c768623704d951d4a177f5634dc0eb6a7f2cff4c8db7588e6e286a61ba2aa5020dd3
6
+ metadata.gz: 3f805c26607a691b2af4e692cd5c8c6cf4b24a624b711527f72e85ee49287071369087e261d41eb292a7a9747cf32e26cd7ac67f3b15018d906cf1c9a8a4ceeb
7
+ data.tar.gz: a1bc1b11cfa3244f1361a526c0439bfc9dab5c82efe45e80ee888c5d01920af8e190dc5336b232980d0c57ee3162f3ffa6c5220ecba65b5fc98c577a92275526
@@ -55,10 +55,7 @@ module Phaxio
55
55
  body = JSON.parse(response.body).with_indifferent_access
56
56
  else
57
57
  extension = MimeTypeHelper.extension_for_mimetype content_type
58
- filename = File.join(
59
- Dir.tmpdir,
60
- Dir::Tmpname.make_tmpname('phaxio-', "download.#{extension}")
61
- )
58
+ filename = File.join Dir.tmpdir, tmpname(extension)
62
59
  File.open(filename, 'wb') { |file| file.write response.body }
63
60
  body = {'success' => response.success?, 'data' => File.open(filename, 'rb')}
64
61
  end
@@ -93,12 +90,23 @@ module Phaxio
93
90
  end
94
91
  end
95
92
 
93
+ def tmpname(extension)
94
+ t = Time.now.strftime("%Y%m%d")
95
+ "phaxio-#{t}-#{$$}-#{rand(0x100000000).to_s(36)}-download.#{extension}"
96
+ end
97
+
96
98
  def post endpoint, params = {}
97
99
  # Handle file params
98
100
  params.each do |k, v|
99
101
  next unless k.to_s == 'file'
100
- mime_type = MimeTypeHelper.mimetype_for_file v.path
101
- params[k] = Faraday::UploadIO.new v, mime_type
102
+
103
+ if v.is_a? Array
104
+ file_param = v.map { |file| file_to_param file }
105
+ else
106
+ file_param = file_to_param v
107
+ end
108
+
109
+ params[k] = file_param
102
110
  end
103
111
 
104
112
  conn.post endpoint, params
@@ -130,6 +138,11 @@ module Phaxio
130
138
  api_secret: Phaxio.api_secret
131
139
  }
132
140
  end
141
+
142
+ def file_to_param file
143
+ mime_type = MimeTypeHelper.mimetype_for_file file.path
144
+ Faraday::UploadIO.new file, mime_type
145
+ end
133
146
  end
134
147
  end
135
148
  end
@@ -1,3 +1,3 @@
1
1
  module Phaxio
2
- VERSION = "2.0.0"
2
+ VERSION = "2.0.1"
3
3
  end
@@ -14,6 +14,7 @@ Gem::Specification.new do |gem|
14
14
  gem.name = "phaxio"
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Phaxio::VERSION
17
+ gem.licenses = ['MIT']
17
18
 
18
19
  gem.required_ruby_version = '>= 2.0'
19
20
  gem.add_dependency 'faraday', '~> 0.10'
@@ -32,6 +32,38 @@ RSpec.describe Phaxio::Client do
32
32
  client.request :get, endpoint, params
33
33
  end
34
34
 
35
+ it 'handles a single file param' do
36
+ file_path = File.expand_path File.join('..', 'support', 'files', 'test.pdf'), __FILE__
37
+ params = {to: '+12258888888', file: File.open(file_path)}
38
+ expect(test_connection).to receive(:post) do |request_endpoint, request_params|
39
+ expect(request_params[:file]).to be_a(Faraday::UploadIO)
40
+ expect(request_params[:file].original_filename).to eq(File.basename(file_path))
41
+ test_response 200
42
+ end
43
+
44
+ client.request :post, 'faxes', params
45
+ end
46
+
47
+ it 'handles multiple file params' do
48
+ file_names = ['test.pdf', 'test.txt']
49
+ file_paths = file_names.map do |file_name|
50
+ File.expand_path File.join('..', 'support', 'files', file_name), __FILE__
51
+ end
52
+ params = {to: '+12258888888', file: file_paths.map { |file_path| File.open(file_path) }}
53
+
54
+ expect(test_connection).to receive(:post) do |request_endpoint, request_params|
55
+ expect(request_params[:file]).to be_a(Array)
56
+ correct_file_params = request_params[:file].all? do |file_param|
57
+ file_param.is_a? Faraday::UploadIO
58
+ end
59
+ expect(correct_file_params).to eq(true)
60
+ expect(request_params[:file].map(&:original_filename)).to eq(file_names)
61
+ test_response 200
62
+ end
63
+
64
+ client.request :post, 'faxes', params
65
+ end
66
+
35
67
  it 'uses the configured API key and secret by default' do
36
68
  expect(test_connection).to receive(:get) do |_endpoint, request_params|
37
69
  expect(request_params[:api_key]).to eq(Phaxio.api_key)
@@ -0,0 +1 @@
1
+ OK
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phaxio
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julien Negrotto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-11 00:00:00.000000000 Z
11
+ date: 2018-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -97,6 +97,7 @@ files:
97
97
  - spec/support/credentials.rb
98
98
  - spec/support/expectations.rb
99
99
  - spec/support/files/test.pdf
100
+ - spec/support/files/test.txt
100
101
  - spec/support/vcr.rb
101
102
  - spec/support/vcr_cassettes/resources/account/status.yml
102
103
  - spec/support/vcr_cassettes/resources/fax/cancel.yml
@@ -117,7 +118,8 @@ files:
117
118
  - spec/support/vcr_cassettes/resources/public/area_codes/list.yml
118
119
  - spec/support/vcr_cassettes/resources/public/country/list.yml
119
120
  homepage: https://github.com/phaxio/phaxio-ruby
120
- licenses: []
121
+ licenses:
122
+ - MIT
121
123
  metadata: {}
122
124
  post_install_message:
123
125
  rdoc_options: []
@@ -135,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
137
  version: '0'
136
138
  requirements: []
137
139
  rubyforge_project:
138
- rubygems_version: 2.5.1
140
+ rubygems_version: 2.5.2.2
139
141
  signing_key:
140
142
  specification_version: 4
141
143
  summary: Official ruby gem for interacting with Phaxio's API.