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,44 @@
1
+ module WebexXmlApi
2
+ module Meeting
3
+ class DelMeeting
4
+ include WebexXmlApi::Common
5
+
6
+ REQUEST_TYPE = 'java:com.webex.service.binding.meeting.DelMeeting'.freeze
7
+ PARAMETER_MAPPING = {
8
+ meeting_key: 'meetingKey'
9
+ }.freeze
10
+
11
+ attr_accessor :meeting_key, :security_context
12
+ attr_reader :request, :response
13
+
14
+ def initialize(attributes = {})
15
+ attributes.each_pair do |k, v|
16
+ send("#{k}=", v) if PARAMETER_MAPPING.key?(k)
17
+ end
18
+ @security_context ||= WebexXmlApi::SecurityContext.new(attributes)
19
+ end
20
+
21
+ def to_xml
22
+ raise WebexXmlApi::NotEnoughArguments,
23
+ 'Meeting::DelMeeting' unless valid?
24
+ body_content = {}
25
+ PARAMETER_MAPPING.each_pair do |k, v|
26
+ body_content[v] = send(k) if send(k)
27
+ end
28
+ create_xml_request(@security_context.to_xml, REQUEST_TYPE,
29
+ body_content)
30
+ end
31
+
32
+ def valid?(context = self)
33
+ return false if context.meeting_key.nil?
34
+ true
35
+ end
36
+
37
+ def send_request
38
+ @request = to_xml
39
+ @response = post_webex_request(security_context.site_name, @request)
40
+ check_response_and_return_data(@response)
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ module WebexXmlApi
2
+ module Meeting
3
+ class GetMeeting
4
+ include WebexXmlApi::Common
5
+
6
+ REQUEST_TYPE = 'java:com.webex.service.binding.meeting.GetMeeting'.freeze
7
+ PARAMETER_MAPPING = {
8
+ meeting_key: 'meetingKey'
9
+ }.freeze
10
+
11
+ attr_accessor :meeting_key, :security_context
12
+ attr_reader :request, :response
13
+
14
+ def initialize(attributes = {})
15
+ attributes.each_pair do |k, v|
16
+ send("#{k}=", v) if PARAMETER_MAPPING.key?(k)
17
+ end
18
+ @security_context ||= WebexXmlApi::SecurityContext.new(attributes)
19
+ end
20
+
21
+ def to_xml
22
+ raise WebexXmlApi::NotEnoughArguments,
23
+ 'Meeting::GetMeeting' unless valid?
24
+ body_content = {}
25
+ PARAMETER_MAPPING.each_pair do |k, v|
26
+ body_content[v] = send(k) if send(k)
27
+ end
28
+ create_xml_request(@security_context.to_xml, REQUEST_TYPE,
29
+ body_content)
30
+ end
31
+
32
+ def valid?(context = self)
33
+ return false if context.meeting_key.nil?
34
+ true
35
+ end
36
+
37
+ def send_request
38
+ @request = to_xml
39
+ @response = post_webex_request(security_context.site_name, @request)
40
+ check_response_and_return_data(@response)
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,45 @@
1
+ module WebexXmlApi
2
+ module Meeting
3
+ class GetjoinurlMeeting
4
+ include WebexXmlApi::Common
5
+
6
+ REQUEST_TYPE =
7
+ 'java:com.webex.service.binding.meeting.GetjoinurlMeeting'.freeze
8
+ PARAMETER_MAPPING = {
9
+ session_key: 'sessionKey'
10
+ }.freeze
11
+
12
+ attr_accessor :session_key, :security_context
13
+ attr_reader :request, :response
14
+
15
+ def initialize(attributes = {})
16
+ attributes.each_pair do |k, v|
17
+ send("#{k}=", v) if PARAMETER_MAPPING.key?(k)
18
+ end
19
+ @security_context ||= WebexXmlApi::SecurityContext.new(attributes)
20
+ end
21
+
22
+ def to_xml
23
+ raise WebexXmlApi::NotEnoughArguments,
24
+ 'Meeting::GetjoinurlMeeting' unless valid?
25
+ body_content = {}
26
+ PARAMETER_MAPPING.each_pair do |k, v|
27
+ body_content[v] = send(k) if send(k)
28
+ end
29
+ create_xml_request(@security_context.to_xml, REQUEST_TYPE,
30
+ body_content)
31
+ end
32
+
33
+ def valid?(context = self)
34
+ return false if context.session_key.nil?
35
+ true
36
+ end
37
+
38
+ def send_request
39
+ @request = to_xml
40
+ @response = post_webex_request(security_context.site_name, @request)
41
+ check_response_and_return_data(@response)
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,43 @@
1
+ module WebexXmlApi
2
+ class SecurityContext
3
+ PARAMETER_MAPPING = {
4
+ webex_id: 'webExID',
5
+ password: 'password',
6
+ site_id: 'siteID',
7
+ site_name: 'siteName',
8
+ partner_id: 'partnerID',
9
+ email: 'email',
10
+ session_ticket: 'sessionTicket',
11
+ client_id: 'clientID',
12
+ client_secret: 'clientSecret'
13
+ }.freeze
14
+
15
+ PARAMETER_MAPPING.each_key { |k| attr_accessor k }
16
+
17
+ def initialize(attributes = {})
18
+ attributes.each_pair do |k, v|
19
+ send("#{k}=", v) if PARAMETER_MAPPING.key?(k)
20
+ end
21
+ end
22
+
23
+ def to_xml
24
+ raise WebexXmlApi::NotEnoughArguments, 'SecurityContext' unless valid?
25
+ builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
26
+ xml.header do
27
+ xml.securityContext do
28
+ PARAMETER_MAPPING.each_pair do |k, v|
29
+ xml.send(v, send(k)) if send(k)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ builder.to_xml.gsub("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n", '')
35
+ end
36
+
37
+ def valid?(context = self)
38
+ return false if context.site_name.nil? || context.webex_id.nil?
39
+ return false if context.password.nil? && context.session_ticket.nil?
40
+ true
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ module WebexXmlApi
2
+ module User
3
+ class GetUser
4
+ include WebexXmlApi::Common
5
+
6
+ REQUEST_TYPE = 'java:com.webex.service.binding.user.GetUser'.freeze
7
+ PARAMETER_MAPPING = {
8
+ webex_id: 'webExId'
9
+ }.freeze
10
+
11
+ attr_accessor :webex_id, :security_context
12
+ attr_reader :request, :response
13
+
14
+ def initialize(attributes = {})
15
+ attributes.each_pair do |k, v|
16
+ send("#{k}=", v) if PARAMETER_MAPPING.key?(k)
17
+ end
18
+ @security_context ||= WebexXmlApi::SecurityContext.new(attributes)
19
+ end
20
+
21
+ def to_xml
22
+ raise WebexXmlApi::NotEnoughArguments, 'User::GetUser' unless valid?
23
+ body_content = {}
24
+ PARAMETER_MAPPING.each_pair do |k, v|
25
+ body_content[v] = send(k) if send(k)
26
+ end
27
+ create_xml_request(@security_context.to_xml, REQUEST_TYPE,
28
+ body_content)
29
+ end
30
+
31
+ def valid?(context = self)
32
+ return false if context.webex_id.nil?
33
+ true
34
+ end
35
+
36
+ def send_request
37
+ @request = to_xml
38
+ @response = post_webex_request(security_context.site_name, @request)
39
+ check_response_and_return_data(@response)
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,3 @@
1
+ module WebexXmlApi
2
+ VERSION = '0.1.0'.freeze
3
+ end
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.webex.com/schemas/2002/06/service"><header>
3
+ <securityContext>
4
+ <webExID>123456</webExID>
5
+ <password>test</password>
6
+ <siteName>test</siteName>
7
+ </securityContext>
8
+ </header>
9
+ <body><bodyContent xsi:type="java:com.webex.service.binding.meeting.CreateMeeting"><metaData><confName>Test-Meeting via XML API</confName></metaData><schedule><startDate>07/30/2016 15:00:00</startDate><duration>60</duration></schedule></bodyContent></body></serv:message>
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Thu, 28 Jul 2016 11:08:58 GMT
3
+ Server:
4
+ Pragma: no-cache
5
+ Cache-Control: no-cache
6
+ Expires: Thu, 01 Jan 1970 00:00:00 GMT
7
+ Content-Type: text/xml;charset=UTF-8
8
+ Strict-Transport-Security: max-age=31536000; includeSubDomains;preload
9
+ Transfer-Encoding: chunked
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee"><serv:header><serv:response><serv:result>FAILURE</serv:result><serv:reason>Meeting password must not be null</serv:reason><serv:gsbStatus>PRIMARY</serv:gsbStatus><serv:exceptionID>060026</serv:exceptionID></serv:response></serv:header><serv:body><serv:bodyContent/></serv:body></serv:message>
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Thu, 28 Jul 2016 11:08:35 GMT
3
+ Server:
4
+ Pragma: no-cache
5
+ Cache-Control: no-cache
6
+ Expires: Thu, 01 Jan 1970 00:00:00 GMT
7
+ Content-Type: text/xml;charset=UTF-8
8
+ Strict-Transport-Security: max-age=31536000; includeSubDomains;preload
9
+ Transfer-Encoding: chunked
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee"><serv:header><serv:response><serv:result>SUCCESS</serv:result><serv:gsbStatus>PRIMARY</serv:gsbStatus></serv:response></serv:header><serv:body><serv:bodyContent xsi:type="meet:createMeetingResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><meet:meetingkey>123456789</meet:meetingkey><meet:iCalendarURL><serv:host>https://test.webex.com/test/j.php?MTID=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</serv:host><serv:attendee>https://test.webex.com/test/j.php?MTID=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</serv:attendee></meet:iCalendarURL><meet:guestToken>cccccccccccccccccccccccccccccccc</meet:guestToken></serv:bodyContent></serv:body></serv:message>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.webex.com/schemas/2002/06/service"><header>
3
+ <securityContext>
4
+ <webExID>123456</webExID>
5
+ <password>test</password>
6
+ <siteName>test</siteName>
7
+ </securityContext>
8
+ </header>
9
+ <body><bodyContent xsi:type="java:com.webex.service.binding.meeting.DelMeeting"><meetingKey>123456789</meetingKey></bodyContent></body></serv:message>
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Thu, 28 Jul 2016 08:07:30 GMT
3
+ Server:
4
+ Pragma: no-cache
5
+ Cache-Control: no-cache
6
+ Expires: Thu, 01 Jan 1970 00:00:00 GMT
7
+ Content-Type: text/xml;charset=UTF-8
8
+ Strict-Transport-Security: max-age=31536000; includeSubDomains;preload
9
+ Transfer-Encoding: chunked
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee"><serv:header><serv:response><serv:result>FAILURE</serv:result><serv:reason>Corresponding Meeting not found</serv:reason><serv:gsbStatus>PRIMARY</serv:gsbStatus><serv:exceptionID>060001</serv:exceptionID></serv:response></serv:header><serv:body><serv:bodyContent/></serv:body></serv:message>
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Thu, 28 Jul 2016 08:09:03 GMT
3
+ Server:
4
+ Pragma: no-cache
5
+ Cache-Control: no-cache
6
+ Expires: Thu, 01 Jan 1970 00:00:00 GMT
7
+ Content-Type: text/xml;charset=UTF-8
8
+ Strict-Transport-Security: max-age=31536000; includeSubDomains;preload
9
+ Transfer-Encoding: chunked
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee"><serv:header><serv:response><serv:result>SUCCESS</serv:result><serv:gsbStatus>PRIMARY</serv:gsbStatus></serv:response></serv:header><serv:body><serv:bodyContent xsi:type="meet:delMeetingResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><meet:iCalendarURL><serv:host>https://test.webex.com/test/j.php?ED=123456789&amp;UID=123456789&amp;LD=9&amp;RD=8&amp;ST=1&amp;CN=54:65:73:74:2D:4D:65:65:74:69:6E:67:20:76:69:61:20:58:4D:4C:20:41:50:49&amp;STI=2016-07-20-15-30-00&amp;ETI=2016-07-20-16-00-00&amp;TD=25&amp;ICS=CMC</serv:host><serv:attendee>https://test.webex.com/test/j.php?ED=123456789&amp;UID=123456789&amp;LD=9&amp;RD=8&amp;ST=1&amp;CN=54:65:73:74:2D:4D:65:65:74:69:6E:67:20:76:69:61:20:58:4D:4C:20:41:50:49&amp;STI=2016-07-20-15-30-00&amp;ETI=2016-07-20-16-00-00&amp;TD=25&amp;ICS=MC</serv:attendee></meet:iCalendarURL></serv:bodyContent></serv:body></serv:message>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.webex.com/schemas/2002/06/service"><header>
3
+ <securityContext>
4
+ <webExID>123456</webExID>
5
+ <password>test</password>
6
+ <siteName>test</siteName>
7
+ </securityContext>
8
+ </header>
9
+ <body><bodyContent xsi:type="java:com.webex.service.binding.meeting.GetMeeting"><meetingKey>123456789</meetingKey></bodyContent></body></serv:message>
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Wed, 27 Jul 2016 19:14:26 GMT
3
+ Server:
4
+ Pragma: no-cache
5
+ Cache-Control: no-cache
6
+ Expires: Thu, 01 Jan 1970 00:00:00 GMT
7
+ Content-Type: text/xml;charset=UTF-8
8
+ Strict-Transport-Security: max-age=31536000; includeSubDomains;preload
9
+ Transfer-Encoding: chunked
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee"><serv:header><serv:response><serv:result>FAILURE</serv:result><serv:reason>Corresponding Meeting not found</serv:reason><serv:gsbStatus>PRIMARY</serv:gsbStatus><serv:exceptionID>060001</serv:exceptionID></serv:response></serv:header><serv:body><serv:bodyContent/></serv:body></serv:message>
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Wed, 27 Jul 2016 19:13:47 GMT
3
+ Server:
4
+ Pragma: no-cache
5
+ Cache-Control: no-cache
6
+ Expires: Thu, 01 Jan 1970 00:00:00 GMT
7
+ Content-Type: text/xml;charset=UTF-8
8
+ Strict-Transport-Security: max-age=31536000; includeSubDomains;preload
9
+ Transfer-Encoding: chunked
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee"><serv:header><serv:response><serv:result>SUCCESS</serv:result><serv:gsbStatus>PRIMARY</serv:gsbStatus></serv:response></serv:header><serv:body><serv:bodyContent xsi:type="meet:getMeetingResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><meet:accessControl><meet:listToPublic>false</meet:listToPublic><meet:isPublic>false</meet:isPublic><meet:meetingPassword>123456</meet:meetingPassword></meet:accessControl><meet:metaData><meet:confName>Test-Meeting via XML API</meet:confName><meet:meetingType>74377</meet:meetingType><meet:agenda>Meeting Agenda</meet:agenda><meet:invitation></meet:invitation><meet:isInternal>false</meet:isInternal></meet:metaData><meet:participants><meet:maxUserNumber>4</meet:maxUserNumber><meet:attendees/></meet:participants><meet:enableOptions><meet:chat>true</meet:chat><meet:poll>true</meet:poll><meet:audioVideo>true</meet:audioVideo><meet:attendeeList>false</meet:attendeeList><meet:fileShare>false</meet:fileShare><meet:presentation>true</meet:presentation><meet:applicationShare>true</meet:applicationShare><meet:desktopShare>true</meet:desktopShare><meet:webTour>true</meet:webTour><meet:meetingRecord>false</meet:meetingRecord><meet:annotation>false</meet:annotation><meet:importDocument>false</meet:importDocument><meet:saveDocument>false</meet:saveDocument><meet:printDocument>false</meet:printDocument><meet:pointer>false</meet:pointer><meet:switchPage>false</meet:switchPage><meet:fullScreen>false</meet:fullScreen><meet:thumbnail>false</meet:thumbnail><meet:zoom>false</meet:zoom><meet:copyPage>false</meet:copyPage><meet:rcAppShare>true</meet:rcAppShare><meet:rcDesktopShare>true</meet:rcDesktopShare><meet:rcWebTour>false</meet:rcWebTour><meet:javaClient>false</meet:javaClient><meet:nativeClient>false</meet:nativeClient><meet:attendeeRecordMeeting>false</meet:attendeeRecordMeeting><meet:voip>false</meet:voip><meet:faxIntoMeeting>false</meet:faxIntoMeeting><meet:enableReg>false</meet:enableReg><meet:supportQandA>true</meet:supportQandA><meet:supportFeedback>true</meet:supportFeedback><meet:supportBreakoutSessions>false</meet:supportBreakoutSessions><meet:supportPanelists>false</meet:supportPanelists><meet:supportRemoteComputer>false</meet:supportRemoteComputer><meet:supportShareWebContent>true</meet:supportShareWebContent><meet:supportUCFWebPages>false</meet:supportUCFWebPages><meet:supportUCFRichMedia>false</meet:supportUCFRichMedia><meet:autoDeleteAfterMeetingEnd>false</meet:autoDeleteAfterMeetingEnd><meet:viewAnyDoc>false</meet:viewAnyDoc><meet:viewAnyPage>false</meet:viewAnyPage><meet:allowContactPrivate>false</meet:allowContactPrivate><meet:chatHost>false</meet:chatHost><meet:chatPresenter>false</meet:chatPresenter><meet:chatAllAttendees>false</meet:chatAllAttendees><meet:multiVideo>false</meet:multiVideo><meet:notes>true</meet:notes><meet:closedCaptions>false</meet:closedCaptions><meet:singleNote>false</meet:singleNote><meet:sendFeedback>false</meet:sendFeedback><meet:displayQuickStartHost>false</meet:displayQuickStartHost><meet:displayQuickStartAttendees>false</meet:displayQuickStartAttendees><meet:supportE2E>false</meet:supportE2E><meet:supportPKI>false</meet:supportPKI><meet:HQvideo>false</meet:HQvideo><meet:HDvideo>false</meet:HDvideo><meet:viewVideoThumbs>true</meet:viewVideoThumbs></meet:enableOptions><meet:schedule><meet:startDate>07/20/2016 15:30:00</meet:startDate><meet:timeZoneID>25</meet:timeZoneID><meet:timeZone>GMT+01:00, Europe (Berlin)</meet:timeZone><meet:duration>30</meet:duration><meet:openTime>300</meet:openTime><meet:hostWebExID>123456</meet:hostWebExID><meet:showFileStartMode>false</meet:showFileStartMode><meet:showFileContPlayFlag>false</meet:showFileContPlayFlag><meet:showFileInterVal>0</meet:showFileInterVal><meet:entryExitTone>0</meet:entryExitTone><meet:extNotifyTime>0</meet:extNotifyTime><meet:joinTeleconfBeforeHost>true</meet:joinTeleconfBeforeHost><meet:firstAttendeeAsPresenter>true</meet:firstAttendeeAsPresenter></meet:schedule><meet:telephony><meet:telephonySupport>CALLIN</meet:telephonySupport><meet:numPhoneLines>50</meet:numPhoneLines><meet:enableTSP>false</meet:enableTSP><meet:intlLocalCallIn>false</meet:intlLocalCallIn><meet:callInNum/><meet:isMPAudio>true</meet:isMPAudio></meet:telephony><meet:tracking/><meet:repeat><meet:repeatType>NO_REPEAT</meet:repeatType></meet:repeat><meet:remind/><meet:attendeeOptions><meet:request>false</meet:request><meet:registration>false</meet:registration><meet:auto>false</meet:auto><meet:participantLimit>0</meet:participantLimit><meet:excludePassword>false</meet:excludePassword><meet:joinRequiresAccount>false</meet:joinRequiresAccount></meet:attendeeOptions><meet:meetingkey>123456789</meet:meetingkey><meet:status>NOT_INPROGRESS</meet:status><meet:hostJoined>false</meet:hostJoined><meet:participantsJoined>false</meet:participantsJoined><meet:telePresence>false</meet:telePresence><meet:hostKey>123456</meet:hostKey><meet:eventID>123456789</meet:eventID><meet:guestToken>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</meet:guestToken><meet:hostType>1019001</meet:hostType></serv:bodyContent></serv:body></serv:message>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.webex.com/schemas/2002/06/service"><header>
3
+ <securityContext>
4
+ <webExID>123456</webExID>
5
+ <password>test</password>
6
+ <siteName>test</siteName>
7
+ </securityContext>
8
+ </header>
9
+ <body><bodyContent xsi:type="java:com.webex.service.binding.meeting.GetjoinurlMeeting"><sessionKey>123456789</sessionKey></bodyContent></body></serv:message>
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Thu, 28 Jul 2016 08:00:30 GMT
3
+ Server:
4
+ Pragma: no-cache
5
+ Cache-Control: no-cache
6
+ Expires: Thu, 01 Jan 1970 00:00:00 GMT
7
+ Content-Type: text/xml;charset=UTF-8
8
+ Strict-Transport-Security: max-age=31536000; includeSubDomains;preload
9
+ Transfer-Encoding: chunked
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee"><serv:header><serv:response><serv:result>FAILURE</serv:result><serv:reason>Corresponding Meeting not found</serv:reason><serv:gsbStatus>PRIMARY</serv:gsbStatus><serv:exceptionID>060001</serv:exceptionID></serv:response></serv:header><serv:body><serv:bodyContent/></serv:body></serv:message>
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Thu, 28 Jul 2016 07:59:37 GMT
3
+ Server:
4
+ Pragma: no-cache
5
+ Cache-Control: no-cache
6
+ Expires: Thu, 01 Jan 1970 00:00:00 GMT
7
+ Content-Type: text/xml;charset=UTF-8
8
+ Strict-Transport-Security: max-age=31536000; includeSubDomains;preload
9
+ Transfer-Encoding: chunked
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting" xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee"><serv:header><serv:response><serv:result>SUCCESS</serv:result><serv:gsbStatus>PRIMARY</serv:gsbStatus></serv:response></serv:header><serv:body><serv:bodyContent xsi:type="meet:getjoinurlMeetingResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><meet:joinMeetingURL>https://test.webex.com/test/e.php?AT=SI&amp;MK=123456789</meet:joinMeetingURL><meet:inviteMeetingURL>https://test.webex.com/test/j.php?MTID=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</meet:inviteMeetingURL></serv:bodyContent></serv:body></serv:message>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.webex.com/schemas/2002/06/service"><header>
3
+ <securityContext>
4
+ <webExID>123456</webExID>
5
+ <password>test</password>
6
+ <siteName>test</siteName>
7
+ </securityContext>
8
+ </header>
9
+ <body><bodyContent xsi:type="java:com.webex.service.binding.user.GetUser"><webExId>123456</webExId></bodyContent></body></serv:message>
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Tue, 26 Jul 2016 19:42:30 GMT
3
+ Server:
4
+ Pragma: no-cache
5
+ Cache-Control: no-cache
6
+ Expires: Thu, 01 Jan 1970 00:00:00 GMT
7
+ Content-Type: text/xml;charset=UTF-8
8
+ Strict-Transport-Security: max-age=31536000; includeSubDomains;preload
9
+ Transfer-Encoding: chunked
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:use="http://www.webex.com/schemas/2002/06/service/user"><serv:header><serv:response><serv:result>FAILURE</serv:result><serv:reason>Not a valid session ticket</serv:reason><serv:gsbStatus>PRIMARY</serv:gsbStatus><serv:exceptionID>030047</serv:exceptionID></serv:response></serv:header><serv:body><serv:bodyContent/></serv:body></serv:message>
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 200 OK
2
+ Date: Tue, 26 Jul 2016 19:41:21 GMT
3
+ Server:
4
+ Pragma: no-cache
5
+ Cache-Control: no-cache
6
+ Expires: Thu, 01 Jan 1970 00:00:00 GMT
7
+ Content-Type: text/xml;charset=UTF-8
8
+ Strict-Transport-Security: max-age=31536000; includeSubDomains;preload
9
+ Transfer-Encoding: chunked
10
+
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service" xmlns:com="http://www.webex.com/schemas/2002/06/common" xmlns:use="http://www.webex.com/schemas/2002/06/service/user"><serv:header><serv:response><serv:result>SUCCESS</serv:result><serv:gsbStatus>PRIMARY</serv:gsbStatus></serv:response></serv:header><serv:body><serv:bodyContent xsi:type="use:getUserResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><use:firstName>Firstname</use:firstName><use:lastName>Lastname</use:lastName><use:title>New office</use:title><use:categoryId>36</use:categoryId><use:description>The system automatically creates this office when it creates your user account.</use:description><use:company>Company</use:company><use:webExId>123456</use:webExId><use:address><com:addressType>PERSONAL</com:addressType><com:country>49</com:country></use:address><use:phones><com:phone>49,,,,,,</com:phone><com:mobilePhone>49,,,,,,</com:mobilePhone><com:fax>49,,,,,,</com:fax><use:pager>49,,,,,,</use:pager></use:phones><use:email>123456@mail.com</use:email><use:password>******</use:password><use:expirationDate>none</use:expirationDate><use:commOptions><use:prodAnnounce>false</use:prodAnnounce><use:trainingInfo>false</use:trainingInfo><use:electronicInfo>false</use:electronicInfo><use:promos>false</use:promos><use:press>false</use:press><use:email>false</use:email><use:fax>false</use:fax><use:phone>false</use:phone><use:mail>false</use:mail></use:commOptions><use:meetingTypes><use:meetingType>1</use:meetingType></use:meetingTypes><use:options><use:firstNameVisible>true</use:firstNameVisible><use:lastNameVisible>true</use:lastNameVisible><use:addressVisible>true</use:addressVisible><use:workPhoneVisible>true</use:workPhoneVisible><use:cellPhoneVisible>true</use:cellPhoneVisible><use:pagerVisible>true</use:pagerVisible><use:faxVisible>true</use:faxVisible><use:officeUrlVisible>true</use:officeUrlVisible><use:pictureVisible>true</use:pictureVisible><use:notifyOnNewMessage>true</use:notifyOnNewMessage><use:notifyOnMeeting>true</use:notifyOnMeeting><use:followMeEnable>true</use:followMeEnable><use:emailVisible>true</use:emailVisible><use:listInCategory>true</use:listInCategory><use:titleVisible>true</use:titleVisible><use:folderRead>false</use:folderRead><use:folderWrite>false</use:folderWrite><use:messageVisible>false</use:messageVisible><use:iconSelect1>false</use:iconSelect1><use:iconSelect2>false</use:iconSelect2><use:acceptLinkRequest>false</use:acceptLinkRequest><use:holdOnLinkRequest>true</use:holdOnLinkRequest><use:notifyOnLinkRequest>true</use:notifyOnLinkRequest><use:supportVideo>true</use:supportVideo><use:supportApp>true</use:supportApp><use:supportFileShare>true</use:supportFileShare><use:supportDesktopShare>true</use:supportDesktopShare><use:supportMeetingRecord>true</use:supportMeetingRecord><use:supportAppshareRemote>true</use:supportAppshareRemote><use:supportWebTourRemote>true</use:supportWebTourRemote><use:supportDesktopShareRemote>true</use:supportDesktopShareRemote><use:subscriptionOffice>true</use:subscriptionOffice></use:options><use:timeZoneID>25</use:timeZoneID><use:timeZone>GMT+01:00, Europe (Berlin)</use:timeZone><use:timeZoneWithDST>Berlin (Europe Summer Time, GMT+02:00)</use:timeZoneWithDST><use:tracking/><use:service>FREE_OFFICE</use:service><use:privilege><use:host>true</use:host><use:teleConfCallOut>false</use:teleConfCallOut><use:teleConfCallOutInternational>false</use:teleConfCallOutInternational><use:teleConfCallIn>false</use:teleConfCallIn><use:teleConfTollFreeCallIn>false</use:teleConfTollFreeCallIn><use:siteAdmin>false</use:siteAdmin><use:voiceOverIp>false</use:voiceOverIp><use:roSiteAdmin>false</use:roSiteAdmin><use:labAdmin>false</use:labAdmin><use:otherTelephony>false</use:otherTelephony><use:teleConfCallInInternational>false</use:teleConfCallInInternational><use:attendeeOnly>false</use:attendeeOnly><use:recordingEditor>true</use:recordingEditor><use:meetingAssist>false</use:meetingAssist><use:allowExtAttendees>true</use:allowExtAttendees><use:isEnableCET>false</use:isEnableCET><use:isEnablePMR>false</use:isEnablePMR></use:privilege><use:language>GERMAN</use:language><use:locale>GERMANY</use:locale><use:schedulingPermission>654321</use:schedulingPermission><use:active>ACTIVATED</use:active><use:supportedServices><use:meetingCenter>true</use:meetingCenter><use:trainingCenter>false</use:trainingCenter><use:supportCenter>false</use:supportCenter><use:eventCenter>false</use:eventCenter><use:salesCenter>false</use:salesCenter></use:supportedServices><use:myWebEx><use:isMyWebExPro>false</use:isMyWebExPro><use:myContact>false</use:myContact><use:myProfile>false</use:myProfile><use:myMeetings>true</use:myMeetings><use:myFolders>false</use:myFolders><use:trainingRecordings>false</use:trainingRecordings><use:recordedEvents>false</use:recordedEvents><use:totalStorageSize>0</use:totalStorageSize><use:myReports>false</use:myReports><use:myComputer>0</use:myComputer><use:personalMeetingRoom>false</use:personalMeetingRoom><use:myPartnerLinks>false</use:myPartnerLinks><use:myWorkspaces>false</use:myWorkspaces><use:additionalRecordingStorage>0</use:additionalRecordingStorage></use:myWebEx><use:personalTeleconf><use:joinBeforeHost>false</use:joinBeforeHost></use:personalTeleconf><use:sessionOptions><use:defaultSessionType>1</use:defaultSessionType><use:defaultServiceType>MeetingCenter</use:defaultServiceType><use:autoDeleteAfterMeetingEnd>false</use:autoDeleteAfterMeetingEnd><use:displayQuickStartHost>true</use:displayQuickStartHost><use:displayQuickStartAttendees>false</use:displayQuickStartAttendees></use:sessionOptions><use:supportCenter><use:serviceDesk><use:enable>false</use:enable></use:serviceDesk></use:supportCenter><use:mpProfileNumber>908788</use:mpProfileNumber><use:security><use:forceChangePassword>true</use:forceChangePassword><use:resetPassword>false</use:resetPassword><use:lockAccount>false</use:lockAccount></use:security><use:languageID>9</use:languageID><use:registrationDate>01/01/1970 00:00:01</use:registrationDate><use:visitCount>0</use:visitCount><use:userId>123456789</use:userId><use:passwordExpires>false</use:passwordExpires><use:passwordDaysLeft>0</use:passwordDaysLeft></serv:bodyContent></serv:body></serv:message>
@@ -0,0 +1,9 @@
1
+ require 'simplecov'
2
+ require 'webmock/rspec'
3
+
4
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
5
+ require 'webex_xml_api'
6
+
7
+ def file_fixture(filename)
8
+ open(File.join(File.dirname(__FILE__), 'fixtures', filename.to_s)).read
9
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe WebexXmlApi::Common do
4
+ describe 'methods included in Module' do
5
+ let(:class_with_inclusion) { Class.new.include(described_class) }
6
+ end
7
+ end