ringcentral_sdk 0.5.2 → 1.0.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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/Gemfile +3 -1
  4. data/Gemfile.lock +96 -0
  5. data/README.md +66 -92
  6. data/Rakefile +3 -3
  7. data/lib/ringcentral_sdk/{cache → rest/cache}/extensions.rb +17 -19
  8. data/lib/ringcentral_sdk/rest/cache.rb +3 -0
  9. data/lib/ringcentral_sdk/{platform.rb → rest/client.rb} +61 -55
  10. data/lib/ringcentral_sdk/rest/config.rb +93 -0
  11. data/lib/ringcentral_sdk/rest/extension.rb +12 -0
  12. data/lib/ringcentral_sdk/rest/extension_presence.rb +104 -0
  13. data/lib/ringcentral_sdk/rest/messages.rb +46 -0
  14. data/lib/ringcentral_sdk/{helpers/request.rb → rest/request/base.rb} +2 -2
  15. data/lib/ringcentral_sdk/rest/request/fax.rb +121 -0
  16. data/lib/ringcentral_sdk/{helpers → rest/request}/inflator/contact_info.rb +1 -1
  17. data/lib/ringcentral_sdk/rest/request/inflator.rb +3 -0
  18. data/lib/ringcentral_sdk/rest/request.rb +5 -0
  19. data/lib/ringcentral_sdk/{simple.rb → rest/simple_client.rb} +10 -10
  20. data/lib/ringcentral_sdk/{subscription.rb → rest/subscription.rb} +8 -8
  21. data/lib/ringcentral_sdk/rest.rb +15 -0
  22. data/lib/ringcentral_sdk.rb +3 -7
  23. data/mkdocs.yml +30 -0
  24. data/ringcentral_sdk-0.5.2.gem +0 -0
  25. data/ringcentral_sdk.gemspec +31 -0
  26. data/test/{test_helper.rb → test_base.rb} +3 -3
  27. data/test/{test_platform.rb → test_client.rb} +58 -28
  28. data/test/test_config.rb +29 -0
  29. data/test/test_extension_presence.rb +154 -0
  30. data/test/test_helper_fax.rb +42 -39
  31. data/test/test_helper_inflator_contact_info.rb +3 -3
  32. data/test/test_helper_request.rb +3 -4
  33. data/test/test_setup.rb +4 -4
  34. data/test/test_subscription.rb +9 -9
  35. metadata +95 -48
  36. data/lib/ringcentral_sdk/cache.rb +0 -3
  37. data/lib/ringcentral_sdk/helpers/extension_presence.rb +0 -129
  38. data/lib/ringcentral_sdk/helpers/fax.rb +0 -160
  39. data/lib/ringcentral_sdk/helpers/inflator.rb +0 -3
  40. data/lib/ringcentral_sdk/helpers/messages.rb +0 -19
  41. data/lib/ringcentral_sdk/helpers.rb +0 -7
@@ -1,160 +0,0 @@
1
- require 'base64'
2
- require 'mime'
3
- require 'mime/types'
4
- require 'multi_json'
5
-
6
- module RingCentralSdk::Helpers
7
- class CreateFaxRequest < RingCentralSdk::Helpers::Request
8
- attr_reader :msg
9
-
10
- def initialize(path_params=nil, metadata=nil, options=nil)
11
-
12
- @msg = MIME::Multipart::Mixed.new
13
- @msg.headers.delete('Content-Id')
14
-
15
- @path_params = path_params
16
-
17
- if metadata.is_a?(Hash) || metadata.is_a?(String)
18
- add_metadata(metadata)
19
- end
20
-
21
- if options.is_a?(Hash)
22
- if options.has_key?(:file_name)
23
- add_file(options[:file_name], options[:file_content_type], options[:base64_encode])
24
- elsif options.has_key?(:text)
25
- add_file_text(options[:text])
26
- end
27
- end
28
- end
29
-
30
- def add_metadata(meta=nil)
31
- base64_encode = true
32
- meta = inflate_metadata(meta)
33
- json = MultiJson.encode(meta)
34
- json = Base64.encode64(json) if base64_encode
35
- json_part = MIME::Text.new(json)
36
- json_part.headers.delete('Content-Id')
37
- json_part.headers.set('Content-Type', 'application/json')
38
- json_part.headers.set('Content-Transfer-Encoding', 'base64') if base64_encode
39
- @msg.add(json_part)
40
- return true
41
- end
42
-
43
- def inflate_metadata(meta=nil)
44
- if meta.is_a?(String)
45
- meta = MultiJson.decode(meta,:symbolize_keys=>true)
46
- end
47
- if meta.is_a?(Hash)
48
- inf = RingCentralSdk::Helpers::Inflator::ContactInfo.new
49
-
50
- if meta.has_key?(:to)
51
- meta[:to] = inf.inflate_to_array( meta[:to] )
52
- elsif meta.has_key?("to")
53
- meta["to"] = inf.inflate_to_array( meta["to"] )
54
- else
55
- meta[:to] = inf.inflate_to_array( nil )
56
- end
57
- end
58
- return meta
59
- end
60
-
61
- def add_file_text(text=nil, charset='UTF-8')
62
- return unless text.is_a?(String)
63
- text_part = MIME::Text.new(text,'plain')
64
- text_part.headers.delete('Content-Id')
65
- @msg.add(text_part)
66
- end
67
-
68
- def add_file(file_name, content_type=nil, base64_encode=false)
69
- file_part = get_file_part(file_name, content_type, base64_encode)
70
-
71
- @msg.add(file_part)
72
- return true
73
- end
74
-
75
- def get_file_part(file_name, content_type=nil, base64_encode=false)
76
- file_bytes = get_file_bytes(file_name)
77
-
78
- file_part = base64_encode \
79
- ? MIME::Text.new(Base64.encode64(file_bytes)) \
80
- : MIME::Application.new(file_bytes)
81
-
82
- file_part.headers.delete('Content-Id')
83
- file_part.headers.set('Content-Type', get_file_content_type(file_name, content_type))
84
- file_part.headers.set('Content-Disposition', get_attachment_content_disposition(file_name))
85
- file_part.headers.set('Content-Transfer-Encoding', 'base64') if base64_encode
86
- return file_part
87
- end
88
-
89
- def get_file_bytes(file_name=nil)
90
- unless File.file?(file_name.to_s)
91
- raise "File \"#{file_name.to_s}\" does not exist or cannot be read"
92
- end
93
-
94
- # file_bytes = RUBY_VERSION < '1.9' \ # 1.8.7 removed due to subscription
95
- # ? File.open(file_name, 'rb') { |f| f.read } \
96
- # : File.open(file_name, 'rb:BINARY') { |f| f.read }
97
-
98
- file_bytes = File.open(file_name, 'rb:BINARY') { |f| f.read }
99
-
100
- return file_bytes
101
- end
102
-
103
- def get_file_content_type(file_name=nil, content_type=nil)
104
- return (content_type.is_a?(String) && content_type =~ /^[^\/\s]+\/[^\/\s]+/) \
105
- ? content_type : MIME::Types.type_for(file_name).first.content_type || 'application/octet-stream'
106
- end
107
-
108
- def get_attachment_content_disposition(file_name=nil)
109
- base_name = File.basename(file_name.to_s)
110
- if base_name.is_a?(String) && base_name.length>0
111
- return "attachment; filename=\"#{base_name}\""
112
- else
113
- return 'attachment'
114
- end
115
- end
116
-
117
- def method()
118
- return 'post'
119
- end
120
-
121
- def url()
122
-
123
- vals = {:account_id => '~', :extension_id => '~'}
124
-
125
- if @path_params.is_a?(Hash)
126
- vals.keys.each do |key|
127
- next unless @path_params.has_key?(key)
128
- if @path_params[key].is_a?(String) && @path_params[key].length>0
129
- vals[key] = @path_params[key]
130
- elsif @path_params[key].is_a?(Integer) && @path_params[key]>0
131
- vals[key] = @path_params[key].to_s
132
- end
133
- end
134
- end
135
-
136
- return "account/#{vals[:account_id].to_s}/extension/#{vals[:extension_id].to_s}/fax"
137
-
138
- end
139
-
140
- def content_type()
141
- return @msg.headers.get('Content-Type').to_s
142
- end
143
-
144
- def body()
145
- return @msg.body.to_s
146
- end
147
-
148
- # Experimental
149
- #def _add_file(file_name=nil)
150
- # if file_name.is_a?(String) && File.file?(file_name)
151
- # file_msg = MIME::DiscreteMediaFactory.create(file_name)
152
- # file_msg.headers.delete('Content-Id')
153
- # @msg.add(file_msg)
154
- # return true
155
- # end
156
- # return false
157
- #end
158
- #private :_add_file
159
- end
160
- end
@@ -1,3 +0,0 @@
1
- module RingCentralSdk::Helpers::Inflator
2
- autoload :ContactInfo, 'ringcentral_sdk/helpers/inflator/contact_info'
3
- end
@@ -1,19 +0,0 @@
1
- module RingCentralSdk::Helpers
2
- class Messages
3
- def initialize(rcapi)
4
- @rcapi = rcapi
5
- end
6
- def create(opts)
7
- response = @rcapi.client.post do |req|
8
- req.url 'account/~/extension/~/sms'
9
- req.headers['Content-Type'] = 'application/json'
10
- req.body = {
11
- :from => { :phoneNumber => opts[:from].to_s },
12
- :to => [ { :phoneNumber => opts[:to].to_s } ],
13
- :text => opts[:text].to_s
14
- }
15
- end
16
- return response
17
- end
18
- end
19
- end
@@ -1,7 +0,0 @@
1
- module RingCentralSdk::Helpers
2
- autoload :CreateFaxRequest, 'ringcentral_sdk/helpers/fax'
3
- autoload :ExtensionPresence, 'ringcentral_sdk/helpers/extension_presence'
4
- autoload :Inflator, 'ringcentral_sdk/helpers/inflator'
5
- autoload :Messages, 'ringcentral_sdk/helpers/messages'
6
- autoload :Request, 'ringcentral_sdk/helpers/request'
7
- end