ringcentral-sdk 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 74403294f6706daa698a0dc6e079c8f32786eb3a
4
- data.tar.gz: ca292de945b064added3734ca38c861d1f22bbe1
3
+ metadata.gz: 985e9f0cf6416e2288c2330b596fde160e32a381
4
+ data.tar.gz: 631d59c2a2c13baa8178fadfc466c6044209b9c4
5
5
  SHA512:
6
- metadata.gz: 969e4771863da2fdedda6c518fa8cbd56d01a048b5eaa6e65ceb028572236a44c4f13b8e520b883d9f3ef3fd234c4f537e490bc8753e8bd18cc33a0f42d6f205
7
- data.tar.gz: b1f1269490113051cf9eb88f770a8b7daf4abfdd90367a2328a9ca1c11585773ea809d36237fc216a47019404e62fd2c10ae98fdec017053c626a01529baf864
6
+ metadata.gz: 2b44f5dddcbc5c65b8c1484844665ce01c2944f42f71d708992bfacbd54f0a977c98b8f87a566a456afc2bc17056328e7663e279aca1559e44059556bfecb906
7
+ data.tar.gz: 1206c7a15bb653e5cb412e1b814031c4b7726f53f39875a56e2cb8688096a1abe68ae6d7aef7c552c2a0f5d2842eeea35d1e03d7002dab44c976ad556205875f
data/README.md CHANGED
@@ -1,9 +1,13 @@
1
- # RingCentral Ruby SDK
1
+ # ringcentral-ruby
2
+
3
+ Ruby SDK for RingCentral.
2
4
 
3
5
 
4
6
  ## Installation
5
7
 
6
- Add `gem 'ringcentral-sdk'` to `Gemfile` and run `bundle install`.
8
+ ```
9
+ gem install ringcentral-sdk
10
+ ```
7
11
 
8
12
 
9
13
  ## Documentation
@@ -21,12 +25,12 @@ rc.authorize(username: ENV['username'], extension: ENV['extension'], password: E
21
25
 
22
26
  # get
23
27
  r = rc.get('/restapi/v1.0/account/~/extension/~')
24
- assert_not_equal nil, r
25
- assert_equal '101', JSON.parse(r.body)['extensionNumber']
28
+ expect(r).not_to be_nil
29
+ expect('101').to eq(JSON.parse(r.body)['extensionNumber'])
26
30
  ```
27
31
 
28
32
 
29
- For more sample code, please refer to the [test cases](/test).
33
+ For more sample code, please refer to the [test cases](/spec).
30
34
 
31
35
 
32
36
  ## How to test
@@ -44,7 +48,7 @@ password=password
44
48
  receiver=number-to-receiver-sms
45
49
  ```
46
50
 
47
- Run `rake test`
51
+ Run `rspec`
48
52
 
49
53
 
50
54
  ## License
@@ -55,5 +59,6 @@ MIT
55
59
  ## Todo
56
60
 
57
61
  - Travis CI
58
- - code coverage
59
- - PubNub subscription
62
+ - Code coverage
63
+ - Batch requests
64
+ - Fax & SMS
@@ -1,17 +1,17 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = 'ringcentral-sdk'
3
- gem.version = '0.2.2'
3
+ gem.version = '0.3.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.'
7
7
  gem.summary = 'RingCentral Ruby SDK.'
8
- gem.homepage = 'https://github.com/tylerlong/ringcentral-ruby'
8
+ gem.homepage = 'https://github.com/ringcentral/ringcentral-ruby'
9
9
  gem.license = 'MIT'
10
10
 
11
11
  gem.require_paths = ['lib']
12
- gem.files = %w(Rakefile README.md ringcentral-sdk.gemspec)
12
+ gem.files = %w(README.md ringcentral-sdk.gemspec)
13
13
  gem.files += Dir['lib/**/*.rb']
14
- gem.test_files = Dir['test/**/*.rb']
14
+ gem.test_files = Dir['spec/**/*.rb']
15
15
 
16
16
  gem.add_dependency('rest-client', '~> 2.0', '>= 2.0.2')
17
17
  gem.add_dependency('addressable', '~> 2.5', '>= 2.5.2')
@@ -0,0 +1,81 @@
1
+ require 'ringcentral'
2
+
3
+ RSpec.describe 'RingCentral' do
4
+ describe 'ringcentral' do
5
+ it 'test_class_variables' do
6
+ expect('https://platform.devtest.ringcentral.com').to eq(RingCentral.SANDBOX_SERVER)
7
+ expect('https://platform.ringcentral.com').to eq(RingCentral.PRODUCTION_SERVER)
8
+ end
9
+
10
+ it 'test_initializer' do
11
+ rc = RingCentral.new('app_key', 'app_secret', RingCentral.SANDBOX_SERVER)
12
+ expect('app_key').to eq(rc.app_key)
13
+ expect('app_secret').to eq(rc.app_secret)
14
+ expect('https://platform.devtest.ringcentral.com').to eq(rc.server)
15
+ expect(true).to eq(rc.auto_refresh)
16
+ end
17
+
18
+ it 'test_authorize_uri' do
19
+ rc = RingCentral.new('app_key', 'app_secret', RingCentral.SANDBOX_SERVER)
20
+ expect(RingCentral.SANDBOX_SERVER + '/restapi/oauth/authorize?client_id=app_secret&redirect_uri=https%3A%2F%2Fexample.com&response_type=code&state=mystate').to eq(rc.authorize_uri('https://example.com', 'mystate'))
21
+ end
22
+
23
+ it 'test_password_flow' do
24
+ Dotenv.load
25
+ rc = RingCentral.new(ENV['appKey'], ENV['appSecret'], ENV['server'])
26
+ expect(rc.token).to be_nil
27
+
28
+ # create token
29
+ rc.authorize(username: ENV['username'], extension: ENV['extension'], password: ENV['password'])
30
+ expect(rc.token).not_to be_nil
31
+
32
+ # refresh token
33
+ rc.refresh
34
+ expect(rc.token).not_to be_nil
35
+
36
+ # revoke token
37
+ rc.revoke
38
+ expect(rc.token).to be_nil
39
+ end
40
+
41
+ it 'test_http_methods' do
42
+ Dotenv.load
43
+ rc = RingCentral.new(ENV['appKey'], ENV['appSecret'], ENV['server'])
44
+ rc.authorize(username: ENV['username'], extension: ENV['extension'], password: ENV['password'])
45
+
46
+ # get
47
+ r = rc.get('/restapi/v1.0/account/~/extension/~')
48
+ expect(r).not_to be_nil
49
+ expect('101').to eq(JSON.parse(r.body)['extensionNumber'])
50
+
51
+ # post
52
+ r = rc.post('/restapi/v1.0/account/~/extension/~/sms', payload: {
53
+ to: [{phoneNumber: ENV['receiver']}],
54
+ from: {phoneNumber: ENV['username']},
55
+ text: 'Hello world'
56
+ })
57
+ expect(r).not_to be_nil
58
+ message = JSON.parse(r.body)
59
+ expect('SMS').to eq(message['type'])
60
+ messageUrl = "/restapi/v1.0/account/~/extension/~/message-store/#{message['id']}"
61
+
62
+ # put
63
+ r = rc.put(messageUrl, payload: { readStatus: 'Unread' })
64
+ expect(r).not_to be_nil
65
+ message = JSON.parse(r.body)
66
+ expect('Unread').to eq(message['readStatus'])
67
+ r = rc.put(messageUrl, payload: { readStatus: 'Read' })
68
+ expect(r).not_to be_nil
69
+ message = JSON.parse(r.body)
70
+ expect('Read').to eq(message['readStatus'])
71
+
72
+ # delete
73
+ r = rc.delete(messageUrl)
74
+ expect(r).not_to be_nil
75
+ r = rc.get(messageUrl)
76
+ expect(r).not_to be_nil
77
+ message = JSON.parse(r.body)
78
+ expect('Deleted').to eq(message['availability'])
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,31 @@
1
+ require 'ringcentral'
2
+ require 'dotenv'
3
+ require 'rspec'
4
+
5
+ RSpec.describe 'Subscription' do
6
+ describe 'subscription' do
7
+ it 'receives message notification' do
8
+ Dotenv.load
9
+ rc = RingCentral.new(ENV['appKey'], ENV['appSecret'], ENV['server'])
10
+ rc.authorize(username: ENV['username'], extension: ENV['extension'], password: ENV['password'])
11
+
12
+ events = [
13
+ '/restapi/v1.0/account/~/extension/~/message-store',
14
+ ]
15
+ count = 0
16
+ subscription = rc.subscription(events, lambda { |message|
17
+ count += 1
18
+ })
19
+ subscription.subscribe()
20
+
21
+ rc.post('/restapi/v1.0/account/~/extension/~/sms', payload: {
22
+ to: [{phoneNumber: ENV['receiver']}],
23
+ from: {phoneNumber: ENV['username']},
24
+ text: 'Hello world'
25
+ })
26
+ sleep(20)
27
+
28
+ expect(count).to be > 0
29
+ end
30
+ end
31
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ringcentral-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Liu
@@ -98,13 +98,12 @@ extensions: []
98
98
  extra_rdoc_files: []
99
99
  files:
100
100
  - README.md
101
- - Rakefile
102
101
  - lib/ringcentral.rb
103
102
  - lib/subscription.rb
104
103
  - ringcentral-sdk.gemspec
105
- - test/test_ringcentral.rb
106
- - test/test_subscription.rb
107
- homepage: https://github.com/tylerlong/ringcentral-ruby
104
+ - spec/ringcentral_spec.rb
105
+ - spec/subscription_spec.rb
106
+ homepage: https://github.com/ringcentral/ringcentral-ruby
108
107
  licenses:
109
108
  - MIT
110
109
  metadata: {}
@@ -129,5 +128,5 @@ signing_key:
129
128
  specification_version: 4
130
129
  summary: RingCentral Ruby SDK.
131
130
  test_files:
132
- - test/test_ringcentral.rb
133
- - test/test_subscription.rb
131
+ - spec/ringcentral_spec.rb
132
+ - spec/subscription_spec.rb
data/Rakefile DELETED
@@ -1,8 +0,0 @@
1
- require 'rake/testtask'
2
-
3
- Rake::TestTask.new do |t|
4
- t.libs << 'test'
5
- end
6
-
7
- desc "Run tests"
8
- task :default => :test
@@ -1,81 +0,0 @@
1
- require 'test/unit'
2
- require 'ringcentral'
3
- require 'dotenv'
4
-
5
- class RingCentralTest < Test::Unit::TestCase
6
- def test_class_variables
7
- assert_equal 'https://platform.devtest.ringcentral.com', RingCentral.SANDBOX_SERVER
8
- assert_equal 'https://platform.ringcentral.com', RingCentral.PRODUCTION_SERVER
9
- end
10
-
11
- def test_initializer
12
- rc = RingCentral.new('app_key', 'app_secret', RingCentral.SANDBOX_SERVER)
13
- assert_equal 'app_key', rc.app_key
14
- assert_equal 'app_secret', rc.app_secret
15
- assert_equal 'https://platform.devtest.ringcentral.com', rc.server
16
- assert_equal true, rc.auto_refresh
17
- end
18
-
19
- def test_authorize_uri
20
- rc = RingCentral.new('app_key', 'app_secret', RingCentral.SANDBOX_SERVER)
21
- assert_equal RingCentral.SANDBOX_SERVER + '/restapi/oauth/authorize?client_id=app_secret&redirect_uri=https%3A%2F%2Fexample.com&response_type=code&state=mystate', rc.authorize_uri('https://example.com', 'mystate')
22
- end
23
-
24
- def test_password_flow
25
- Dotenv.load
26
- rc = RingCentral.new(ENV['appKey'], ENV['appSecret'], ENV['server'])
27
- assert_equal nil, rc.token
28
-
29
- # create token
30
- rc.authorize(username: ENV['username'], extension: ENV['extension'], password: ENV['password'])
31
- assert_not_equal nil, rc.token
32
-
33
- # refresh token
34
- rc.refresh
35
- assert_not_equal nil, rc.token
36
-
37
- # revoke token
38
- rc.revoke
39
- assert_equal nil, rc.token
40
- end
41
-
42
- def test_http_methods
43
- Dotenv.load
44
- rc = RingCentral.new(ENV['appKey'], ENV['appSecret'], ENV['server'])
45
- rc.authorize(username: ENV['username'], extension: ENV['extension'], password: ENV['password'])
46
-
47
- # get
48
- r = rc.get('/restapi/v1.0/account/~/extension/~')
49
- assert_not_equal nil, r
50
- assert_equal '101', JSON.parse(r.body)['extensionNumber']
51
-
52
- # post
53
- r = rc.post('/restapi/v1.0/account/~/extension/~/sms', payload: {
54
- to: [{phoneNumber: ENV['receiver']}],
55
- from: {phoneNumber: ENV['username']},
56
- text: 'Hello world'
57
- })
58
- assert_not_equal nil, r
59
- message = JSON.parse(r.body)
60
- assert_equal 'SMS', message['type']
61
- messageUrl = "/restapi/v1.0/account/~/extension/~/message-store/#{message['id']}"
62
-
63
- # put
64
- r = rc.put(messageUrl, payload: { readStatus: 'Unread' })
65
- assert_not_equal nil, r
66
- message = JSON.parse(r.body)
67
- assert_equal 'Unread', message['readStatus']
68
- r = rc.put(messageUrl, payload: { readStatus: 'Read' })
69
- assert_not_equal nil, r
70
- message = JSON.parse(r.body)
71
- assert_equal 'Read', message['readStatus']
72
-
73
- # delete
74
- r = rc.delete(messageUrl)
75
- assert_not_equal nil, r
76
- r = rc.get(messageUrl)
77
- assert_not_equal nil, r
78
- message = JSON.parse(r.body)
79
- assert_equal 'Deleted', message['availability']
80
- end
81
- end
@@ -1,18 +0,0 @@
1
- require 'test/unit'
2
- require 'ringcentral'
3
- require 'dotenv'
4
-
5
- class SubscriptionTest < Test::Unit::TestCase
6
- def test_create_subscription
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
- # events = [
11
- # '/restapi/v1.0/account/~/extension/~/message-store',
12
- # ]
13
- # subscription = rc.subscription(events, ->(message) {
14
- # puts message
15
- # })
16
- # subscription.subscribe()
17
- end
18
- end