webex_xml_api 0.1.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 (51) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +1 -0
  3. data.tar.gz.sig +1 -0
  4. data/.gitignore +12 -0
  5. data/.rspec +2 -0
  6. data/.rubocop.yml +16 -0
  7. data/.simplecov +1 -0
  8. data/.travis.yml +8 -0
  9. data/Gemfile +4 -0
  10. data/LICENSE.txt +21 -0
  11. data/README.md +94 -0
  12. data/Rakefile +7 -0
  13. data/certs/erolms.pem +21 -0
  14. data/lib/webex_xml_api.rb +11 -0
  15. data/lib/webex_xml_api/common.rb +52 -0
  16. data/lib/webex_xml_api/exceptions.rb +21 -0
  17. data/lib/webex_xml_api/meeting/create_meeting.rb +326 -0
  18. data/lib/webex_xml_api/meeting/del_meeting.rb +44 -0
  19. data/lib/webex_xml_api/meeting/get_meeting.rb +44 -0
  20. data/lib/webex_xml_api/meeting/getjoinurl_meeting.rb +45 -0
  21. data/lib/webex_xml_api/security_context.rb +43 -0
  22. data/lib/webex_xml_api/user/get_user.rb +43 -0
  23. data/lib/webex_xml_api/version.rb +3 -0
  24. data/spec/fixtures/meeting_create_meeting_request.xml +9 -0
  25. data/spec/fixtures/meeting_create_meeting_response_bad.xml +12 -0
  26. data/spec/fixtures/meeting_create_meeting_response_good.xml +12 -0
  27. data/spec/fixtures/meeting_del_meeting_request.xml +9 -0
  28. data/spec/fixtures/meeting_del_meeting_response_bad.xml +12 -0
  29. data/spec/fixtures/meeting_del_meeting_response_good.xml +12 -0
  30. data/spec/fixtures/meeting_get_meeting_request.xml +9 -0
  31. data/spec/fixtures/meeting_get_meeting_response_bad.xml +12 -0
  32. data/spec/fixtures/meeting_get_meeting_response_good.xml +12 -0
  33. data/spec/fixtures/meeting_getjoinurl_meeting_request.xml +9 -0
  34. data/spec/fixtures/meeting_getjoinurl_meeting_response_bad.xml +12 -0
  35. data/spec/fixtures/meeting_getjoinurl_meeting_response_good.xml +12 -0
  36. data/spec/fixtures/user_get_user_request.xml +9 -0
  37. data/spec/fixtures/user_get_user_response_bad.xml +12 -0
  38. data/spec/fixtures/user_get_user_response_good.xml +12 -0
  39. data/spec/spec_helper.rb +9 -0
  40. data/spec/webex_xml_api/common_spec.rb +7 -0
  41. data/spec/webex_xml_api/exceptions_spec.rb +54 -0
  42. data/spec/webex_xml_api/meeting/create_meeting_spec.rb +131 -0
  43. data/spec/webex_xml_api/meeting/del_meeting_spec.rb +85 -0
  44. data/spec/webex_xml_api/meeting/get_meeting_spec.rb +85 -0
  45. data/spec/webex_xml_api/meeting/getjoinurl_meeting_spec.rb +87 -0
  46. data/spec/webex_xml_api/security_context_spec.rb +60 -0
  47. data/spec/webex_xml_api/user/get_user_spec.rb +82 -0
  48. data/spec/webex_xml_api_spec.rb +7 -0
  49. data/webex_xml_api.gemspec +32 -0
  50. metadata +249 -0
  51. metadata.gz.sig +1 -0
@@ -0,0 +1,82 @@
1
+ require 'spec_helper'
2
+
3
+ describe WebexXmlApi::User::GetUser do
4
+ subject { described_class }
5
+
6
+ describe '#initialize' do
7
+ it 'creates attr_accessors and sets variables' do
8
+ gu = subject.new(site_name: 'test', webex_id: '123456')
9
+ expect(gu.webex_id).to eql('123456')
10
+ expect(gu.security_context).to be
11
+ end
12
+
13
+ it 'ignores invalid parameters' do
14
+ gu = subject.new(webex_id: 'test', invalid_param: 'test')
15
+ expect(gu.webex_id).to eql('test')
16
+ expect(gu).not_to respond_to(:invalid_param)
17
+ end
18
+ end
19
+
20
+ describe '#to_xml' do
21
+ it 'raises a NotEnoughArguments exception if arguments missing' do
22
+ gu = subject.new(site_name: 'test')
23
+ expect { gu.to_xml }
24
+ .to raise_error(WebexXmlApi::NotEnoughArguments, 'User::GetUser')
25
+ end
26
+
27
+ it 'returns formatted XML text' do
28
+ expected = file_fixture('user_get_user_request.xml')
29
+ gu = subject.new(site_name: 'test', webex_id: '123456', password: 'test')
30
+ expect(gu.to_xml).to eql(expected)
31
+ end
32
+ end
33
+
34
+ describe '#valid?' do
35
+ it 'fails if webex_id is missing' do
36
+ gu = subject.new
37
+ expect(gu.valid?).to be_falsey
38
+ end
39
+
40
+ it 'succeeds if all required parameters are set' do
41
+ gu = subject.new(webex_id: 'test')
42
+ expect(gu.valid?).to be_truthy
43
+ end
44
+ end
45
+
46
+ describe '#send_request' do
47
+ it 'raises a NotEnoughArguments exception for GetUser' do
48
+ gu = subject.new(site_name: 'test')
49
+ expect { gu.send_request }
50
+ .to raise_error(WebexXmlApi::NotEnoughArguments, 'User::GetUser')
51
+ end
52
+
53
+ it 'raises a NotEnoughArguments exception for SecurityContext' do
54
+ gu = subject.new(site_name: 'test', webex_id: 'test')
55
+ expect { gu.send_request }
56
+ .to raise_error(WebexXmlApi::NotEnoughArguments, 'SecurityContext')
57
+ end
58
+
59
+ it 'raises a RequestFailed exception with error message' do
60
+ gu = subject.new(site_name: 'test', webex_id: 'test', password: 'test')
61
+ bad_reply = file_fixture('user_get_user_response_bad.xml')
62
+ stub_request(:post, 'https://test.webex.com/WBXService/XMLService')
63
+ .to_return(bad_reply)
64
+ expect { gu.send_request }
65
+ .to raise_error { |error|
66
+ expect(error.message)
67
+ .to eql('Error 030047: Not a valid session ticket')
68
+ }
69
+ end
70
+
71
+ it 'returns Response bodyContent as hash' do
72
+ gu = subject.new(site_name: 'test', webex_id: 'test', password: 'test')
73
+ good_reply = file_fixture('user_get_user_response_good.xml')
74
+ stub_request(:post, 'https://test.webex.com/WBXService/XMLService')
75
+ .to_return(good_reply)
76
+ ret = gu.send_request
77
+ expect(ret).to be
78
+ expect(ret.key?('firstName')).to be_truthy
79
+ expect(ret['webExId']).to eql('123456')
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe WebexXmlApi do
4
+ it 'has a version number' do
5
+ expect(WebexXmlApi::VERSION).not_to be nil
6
+ end
7
+ end
@@ -0,0 +1,32 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'webex_xml_api/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'webex_xml_api'
8
+ spec.version = WebexXmlApi::VERSION
9
+ spec.authors = ['Erol Zavidic']
10
+ spec.email = ['erolms@googlemail.com']
11
+ spec.cert_chain = ['certs/erolms.pem']
12
+ spec.signing_key = File.expand_path('~/.gem/gem-private_key.pem') if $0 =~ /gem\z/
13
+
14
+ spec.summary = 'WebEx XML API integration gem'
15
+ spec.description = 'Ruby gem for Cisco WebEx integration using XML API interface'
16
+ spec.homepage = 'https://github.com/erolms/webex_xml_api'
17
+ spec.license = 'MIT'
18
+
19
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
+ spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
+ spec.require_paths = ['lib']
22
+
23
+ spec.add_dependency 'httparty'
24
+ spec.add_dependency 'nokogiri'
25
+
26
+ spec.add_development_dependency 'bundler', '~> 1.12'
27
+ spec.add_development_dependency 'rake', '~> 10.0'
28
+ spec.add_development_dependency 'rspec', '~> 3.0'
29
+ spec.add_development_dependency 'rubocop'
30
+ spec.add_development_dependency 'simplecov'
31
+ spec.add_development_dependency 'webmock'
32
+ end
metadata ADDED
@@ -0,0 +1,249 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: webex_xml_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Erol Zavidic
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDfDCCAmSgAwIBAgIBATANBgkqhkiG9w0BAQUFADBCMQ8wDQYDVQQDDAZlcm9s
14
+ bXMxGjAYBgoJkiaJk/IsZAEZFgpnb29nbGVtYWlsMRMwEQYKCZImiZPyLGQBGRYD
15
+ Y29tMB4XDTE2MDcyMTE5NDAxNloXDTE3MDcyMTE5NDAxNlowQjEPMA0GA1UEAwwG
16
+ ZXJvbG1zMRowGAYKCZImiZPyLGQBGRYKZ29vZ2xlbWFpbDETMBEGCgmSJomT8ixk
17
+ ARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKF/jkTV5Dfl
18
+ 2cxLTasgJVBhcQu7/46V9xmoQFJV71GeNhaLWII38H8CNJ1Z1kKeYVuCfB+AVEFB
19
+ f+5dXU4NFv5g9gupphTAvCjndhsx8UfS8xk3TBogDFJi8VhbdoJVZf/nUKqEOzFW
20
+ WOQWsOUYrbCHE97SLP4YMzPmrQbeudFTZhkIooJTfCgJMTRByQkIvhGovmPEC2iK
21
+ SCijh3gshMnYtWohU4/TcpJFFlSvN5vE0qGRhuT7H5lIE17koc9BLY/ds7Xb3K+6
22
+ BNpg1Dawkfj4xAwCvsKA9nUVJtO4+CyJ28de3G0ULbJM0ZIbny3bxcj1bWoxpJ3r
23
+ Mh1i1gxXyj8CAwEAAaN9MHswCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
24
+ BBYEFFPwzKI9ERlafHGS4lYAEaQRFKRdMCAGA1UdEQQZMBeBFWVyb2xtc0Bnb29n
25
+ bGVtYWlsLmNvbTAgBgNVHRIEGTAXgRVlcm9sbXNAZ29vZ2xlbWFpbC5jb20wDQYJ
26
+ KoZIhvcNAQEFBQADggEBAH2w8AzqS+cQIN7fU9mtXHRL4DVAJ7sMiqOKl+tylQwz
27
+ Hm85SB3s1Mnr5zHg3ktWiCg2f6it0Q3hwrqiMmYr/HhMgSV45pDeMOx8G35vkiSc
28
+ 6Q9eOpX1EW/iP7o+bz1ApLRzJhNljKLRM5Ab+AyYhBWOV9GiHIR1Ezfa1Nvp4PrH
29
+ VXSbuNITNTsGyfMJPjRZEsDBHCiUaf4vKnTHLhdWchM+S9x+mgZtgJKhl4L5bGfY
30
+ IDTbBxqvlx+U6M7GX9uKycRxR3P7dvOQ30p888C7crtRRmxvBl2wE/fmHiK4gQ17
31
+ NREDtx+Bo3lOQwgUmOzofKQbE/vo0DRKogbZiCj30IY=
32
+ -----END CERTIFICATE-----
33
+ date: 2016-07-29 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: httparty
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ - !ruby/object:Gem::Dependency
50
+ name: nokogiri
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: bundler
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.12'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '1.12'
77
+ - !ruby/object:Gem::Dependency
78
+ name: rake
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '10.0'
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '10.0'
91
+ - !ruby/object:Gem::Dependency
92
+ name: rspec
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '3.0'
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '3.0'
105
+ - !ruby/object:Gem::Dependency
106
+ name: rubocop
107
+ requirement: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ type: :development
113
+ prerelease: false
114
+ version_requirements: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ - !ruby/object:Gem::Dependency
120
+ name: simplecov
121
+ requirement: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ type: :development
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ - !ruby/object:Gem::Dependency
134
+ name: webmock
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ type: :development
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ description: Ruby gem for Cisco WebEx integration using XML API interface
148
+ email:
149
+ - erolms@googlemail.com
150
+ executables: []
151
+ extensions: []
152
+ extra_rdoc_files: []
153
+ files:
154
+ - ".gitignore"
155
+ - ".rspec"
156
+ - ".rubocop.yml"
157
+ - ".simplecov"
158
+ - ".travis.yml"
159
+ - Gemfile
160
+ - LICENSE.txt
161
+ - README.md
162
+ - Rakefile
163
+ - certs/erolms.pem
164
+ - lib/webex_xml_api.rb
165
+ - lib/webex_xml_api/common.rb
166
+ - lib/webex_xml_api/exceptions.rb
167
+ - lib/webex_xml_api/meeting/create_meeting.rb
168
+ - lib/webex_xml_api/meeting/del_meeting.rb
169
+ - lib/webex_xml_api/meeting/get_meeting.rb
170
+ - lib/webex_xml_api/meeting/getjoinurl_meeting.rb
171
+ - lib/webex_xml_api/security_context.rb
172
+ - lib/webex_xml_api/user/get_user.rb
173
+ - lib/webex_xml_api/version.rb
174
+ - spec/fixtures/meeting_create_meeting_request.xml
175
+ - spec/fixtures/meeting_create_meeting_response_bad.xml
176
+ - spec/fixtures/meeting_create_meeting_response_good.xml
177
+ - spec/fixtures/meeting_del_meeting_request.xml
178
+ - spec/fixtures/meeting_del_meeting_response_bad.xml
179
+ - spec/fixtures/meeting_del_meeting_response_good.xml
180
+ - spec/fixtures/meeting_get_meeting_request.xml
181
+ - spec/fixtures/meeting_get_meeting_response_bad.xml
182
+ - spec/fixtures/meeting_get_meeting_response_good.xml
183
+ - spec/fixtures/meeting_getjoinurl_meeting_request.xml
184
+ - spec/fixtures/meeting_getjoinurl_meeting_response_bad.xml
185
+ - spec/fixtures/meeting_getjoinurl_meeting_response_good.xml
186
+ - spec/fixtures/user_get_user_request.xml
187
+ - spec/fixtures/user_get_user_response_bad.xml
188
+ - spec/fixtures/user_get_user_response_good.xml
189
+ - spec/spec_helper.rb
190
+ - spec/webex_xml_api/common_spec.rb
191
+ - spec/webex_xml_api/exceptions_spec.rb
192
+ - spec/webex_xml_api/meeting/create_meeting_spec.rb
193
+ - spec/webex_xml_api/meeting/del_meeting_spec.rb
194
+ - spec/webex_xml_api/meeting/get_meeting_spec.rb
195
+ - spec/webex_xml_api/meeting/getjoinurl_meeting_spec.rb
196
+ - spec/webex_xml_api/security_context_spec.rb
197
+ - spec/webex_xml_api/user/get_user_spec.rb
198
+ - spec/webex_xml_api_spec.rb
199
+ - webex_xml_api.gemspec
200
+ homepage: https://github.com/erolms/webex_xml_api
201
+ licenses:
202
+ - MIT
203
+ metadata: {}
204
+ post_install_message:
205
+ rdoc_options: []
206
+ require_paths:
207
+ - lib
208
+ required_ruby_version: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
213
+ required_rubygems_version: !ruby/object:Gem::Requirement
214
+ requirements:
215
+ - - ">="
216
+ - !ruby/object:Gem::Version
217
+ version: '0'
218
+ requirements: []
219
+ rubyforge_project:
220
+ rubygems_version: 2.6.6
221
+ signing_key:
222
+ specification_version: 4
223
+ summary: WebEx XML API integration gem
224
+ test_files:
225
+ - spec/fixtures/meeting_create_meeting_request.xml
226
+ - spec/fixtures/meeting_create_meeting_response_bad.xml
227
+ - spec/fixtures/meeting_create_meeting_response_good.xml
228
+ - spec/fixtures/meeting_del_meeting_request.xml
229
+ - spec/fixtures/meeting_del_meeting_response_bad.xml
230
+ - spec/fixtures/meeting_del_meeting_response_good.xml
231
+ - spec/fixtures/meeting_get_meeting_request.xml
232
+ - spec/fixtures/meeting_get_meeting_response_bad.xml
233
+ - spec/fixtures/meeting_get_meeting_response_good.xml
234
+ - spec/fixtures/meeting_getjoinurl_meeting_request.xml
235
+ - spec/fixtures/meeting_getjoinurl_meeting_response_bad.xml
236
+ - spec/fixtures/meeting_getjoinurl_meeting_response_good.xml
237
+ - spec/fixtures/user_get_user_request.xml
238
+ - spec/fixtures/user_get_user_response_bad.xml
239
+ - spec/fixtures/user_get_user_response_good.xml
240
+ - spec/spec_helper.rb
241
+ - spec/webex_xml_api/common_spec.rb
242
+ - spec/webex_xml_api/exceptions_spec.rb
243
+ - spec/webex_xml_api/meeting/create_meeting_spec.rb
244
+ - spec/webex_xml_api/meeting/del_meeting_spec.rb
245
+ - spec/webex_xml_api/meeting/get_meeting_spec.rb
246
+ - spec/webex_xml_api/meeting/getjoinurl_meeting_spec.rb
247
+ - spec/webex_xml_api/security_context_spec.rb
248
+ - spec/webex_xml_api/user/get_user_spec.rb
249
+ - spec/webex_xml_api_spec.rb
metadata.gz.sig ADDED
@@ -0,0 +1 @@
1
+ zkǖޝ��5�^ASe��P0ş�9�O/c�z�d9Z+l�v�Iˋ����CZm�XB�#h,�S�{�