ringcentral-sdk 0.4.0 → 0.5.0

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: 354ed40d66f2e406de2889128652ae486f7a58a6
4
- data.tar.gz: 612d22c0d3c057d446b505b4d5a5f1ebc2d8ceae
3
+ metadata.gz: 974a83a81aeb7fc4ebe89f092e37bd2f5263d476
4
+ data.tar.gz: 42dd0d044334332b3d460b0d119601885b4be65a
5
5
  SHA512:
6
- metadata.gz: fd5fb7784d5a65dc0d3a1f3c5f9d59ca2bf7c2949f6ec376e3a23343277a8be607956042fe9de803fe58ce2dca8d359a5d8b8b52f0eb6a68d28f83a0095245da
7
- data.tar.gz: 46f4c8903ef34646614850b2c0bdb32bb50e0dd376f30cc28034768e681a139bead61c0d59d9e7cb5ec055ee5f466d4864ea4d6e49ad9c906721e775e2cd001e
6
+ metadata.gz: 2497fce973fec489e9c6146412c57597a38829d84e3e456d9182f1fa18d9e46757672f0f1f8607f4f8b4b5df0ff260014fccc9244d9ec62feb78f77e326e633b
7
+ data.tar.gz: ba66d11760095aea93a724ad3582cc4a2c6a74412c3c1da163a892af7af7e3713de9d3771cc4059371c765671d4ffd92fd4f22543e1434930b6d17527649f750
data/README.md CHANGED
@@ -63,4 +63,3 @@ MIT
63
63
  ## Todo
64
64
 
65
65
  - Batch requests
66
- - Samples for Fax & MMS
data/lib/ringcentral.rb CHANGED
@@ -4,6 +4,17 @@ require 'subscription'
4
4
  require 'json'
5
5
  require 'concurrent'
6
6
  require 'faraday'
7
+ require 'tmpdir'
8
+
9
+ class MockResponse
10
+ def initialize(body)
11
+ @body = body
12
+ end
13
+
14
+ def body
15
+ @body
16
+ end
17
+ end
7
18
 
8
19
  class RingCentral
9
20
  def self.SANDBOX_SERVER
@@ -101,15 +112,20 @@ class RingCentral
101
112
  end
102
113
 
103
114
  def post(endpoint, payload: nil, params: {}, files: nil)
115
+ if files != nil && files.size > 0 # send fax
116
+ cmd = %{curl --header "Accept: application/json" --header "Authorization: Bearer #{@token['access_token']}"}
117
+ File.write("#{Dir.tmpdir()}/request.json", JSON.generate(payload))
118
+ cmd += %{ -F "request=@#{Dir.tmpdir()}/request.json;type=application/json"}
119
+ files.each do |file|
120
+ cmd += %{ -F "attachment=@#{file}"}
121
+ end
122
+ cmd += %{ "#{Addressable::URI.parse(@server) + endpoint}"}
123
+ return MockResponse.new(`#{cmd}`)
124
+ end
104
125
  @faraday.post do |req|
105
126
  req.url endpoint
106
127
  req.params = params
107
- if files != nil && files.size > 0
108
- req.headers = headers
109
- req.body = (payload || {}).merge({
110
- attachment: Faraday::UploadIO.new(files[0][:path], files[0][:content_type])
111
- })
112
- elsif payload != nil && @token != nil
128
+ if payload != nil && @token != nil
113
129
  req.headers = headers.merge({ 'Content-Type': 'application/json' })
114
130
  req.body = payload.to_json
115
131
  else
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = 'ringcentral-sdk'
3
- gem.version = '0.4.0'
3
+ gem.version = '0.5.0'
4
4
  gem.authors = ['Tyler Liu']
5
5
  gem.email = ['tyler.liu@ringcentral.com']
6
6
  gem.description = 'Ruby SDK for you to access RingCentral platform API.'
data/spec/fax_spec.rb CHANGED
@@ -9,8 +9,11 @@ RSpec.describe 'Fax' do
9
9
  rc.authorize(username: ENV['username'], extension: ENV['extension'], password: ENV['password'])
10
10
 
11
11
  r = rc.post('/restapi/v1.0/account/~/extension/~/fax',
12
- payload: { to: ENV['receiver'] },
13
- files:[{ path: './spec/test.png', content_type: 'image/png' }]
12
+ payload: { to: [{ phoneNumber: ENV['receiver'] }] },
13
+ files: [
14
+ 'spec/test.txt;type=text/plain',
15
+ 'spec/test.png;type=image/png'
16
+ ]
14
17
  )
15
18
  expect(r).not_to be_nil
16
19
  message = JSON.parse(r.body)
data/spec/mms_spec.rb ADDED
@@ -0,0 +1,26 @@
1
+ require 'dotenv'
2
+ require 'ringcentral'
3
+
4
+ RSpec.describe 'MMS' do
5
+ describe 'send MMS' do
6
+ it 'should send an MMS' do
7
+ Dotenv.load
8
+ rc = RingCentral.new(ENV['appKey'], ENV['appSecret'], ENV['server'])
9
+ rc.authorize(username: ENV['username'], extension: ENV['extension'], password: ENV['password'])
10
+
11
+ r = rc.post('/restapi/v1.0/account/~/extension/~/sms',
12
+ payload: {
13
+ to: [{ phoneNumber: ENV['receiver'] }],
14
+ from: { phoneNumber: ENV['username'] },
15
+ text: 'hello world'
16
+ },
17
+ files: [
18
+ 'spec/test.png;type=image/png'
19
+ ]
20
+ )
21
+ expect(r).not_to be_nil
22
+ message = JSON.parse(r.body)
23
+ expect('SMS').to eq(message['type'])
24
+ end
25
+ end
26
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ringcentral-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Liu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-26 00:00:00.000000000 Z
11
+ date: 2018-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -102,6 +102,7 @@ files:
102
102
  - lib/subscription.rb
103
103
  - ringcentral-sdk.gemspec
104
104
  - spec/fax_spec.rb
105
+ - spec/mms_spec.rb
105
106
  - spec/ringcentral_spec.rb
106
107
  - spec/spec_helper.rb
107
108
  - spec/subscription_spec.rb
@@ -131,6 +132,7 @@ specification_version: 4
131
132
  summary: RingCentral Ruby SDK.
132
133
  test_files:
133
134
  - spec/fax_spec.rb
135
+ - spec/mms_spec.rb
134
136
  - spec/ringcentral_spec.rb
135
137
  - spec/spec_helper.rb
136
138
  - spec/subscription_spec.rb