canvas_webex 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,57 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service"
3
+ xmlns:com="http://www.webex.com/schemas/2002/06/common"
4
+ xmlns:ep="http://www.webex.com/schemas/2002/06/service/ep"
5
+ xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting">
6
+ <serv:header>
7
+ <serv:response>
8
+ <serv:result>SUCCESS</serv:result>
9
+ <serv:gsbStatus>PRIMARY</serv:gsbStatus>
10
+ </serv:response>
11
+ </serv:header>
12
+ <serv:body>
13
+ <serv:bodyContent xsi:type="ep:lstRecordingResponse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
14
+ <ep:matchingRecords>
15
+ <serv:total>2</serv:total>
16
+ <serv:returned>2</serv:returned>
17
+ <serv:startFrom>1</serv:startFrom>
18
+ </ep:matchingRecords>
19
+ <ep:recording>
20
+ <ep:recordingID>38367042</ep:recordingID>
21
+ <ep:hostWebExID>oxana</ep:hostWebExID>
22
+ <ep:name>Sample Conference Cisco-20131021 1923-1</ep:name>
23
+ <ep:createTime>10/21/2013 12:23:21</ep:createTime>
24
+ <ep:timeZoneID>4</ep:timeZoneID>
25
+ <ep:size>0.006234169</ep:size>
26
+ <ep:streamURL>https://instructure.webex.com/instructure/lsr.php?AT=pb&amp;rID=38367042&amp;rKey=d8cc3928a6d73f33</ep:streamURL>
27
+ <ep:fileURL>https://instructure.webex.com/instructure/lsr.php?AT=dw&amp;rID=38367042&amp;rKey=dbe1588745c1530f</ep:fileURL>
28
+ <ep:sessionKey>803157789</ep:sessionKey>
29
+ <ep:trackingCode/>
30
+ <ep:recordingType>0</ep:recordingType>
31
+ <ep:duration>33</ep:duration>
32
+ <ep:format>ARF</ep:format>
33
+ <ep:serviceType>MeetingCenter</ep:serviceType>
34
+ <ep:passwordReq>false</ep:passwordReq>
35
+ <ep:confID>1406668295</ep:confID>
36
+ </ep:recording>
37
+ <ep:recording>
38
+ <ep:recordingID>38367052</ep:recordingID>
39
+ <ep:hostWebExID>oxana</ep:hostWebExID>
40
+ <ep:name>Sample Conference Cisco-20131021 1924-2</ep:name>
41
+ <ep:createTime>10/21/2013 12:24:15</ep:createTime>
42
+ <ep:timeZoneID>4</ep:timeZoneID>
43
+ <ep:size>0.4796915</ep:size>
44
+ <ep:streamURL>https://instructure.webex.com/instructure/lsr.php?AT=pb&amp;rID=38367052&amp;rKey=b4273e27e64e9bd2</ep:streamURL>
45
+ <ep:fileURL>https://instructure.webex.com/instructure/lsr.php?AT=dw&amp;rID=38367052&amp;rKey=85e5a10a7bbd545f</ep:fileURL>
46
+ <ep:sessionKey>803157789</ep:sessionKey>
47
+ <ep:trackingCode/>
48
+ <ep:recordingType>0</ep:recordingType>
49
+ <ep:duration>20</ep:duration>
50
+ <ep:format>ARF</ep:format>
51
+ <ep:serviceType>MeetingCenter</ep:serviceType>
52
+ <ep:passwordReq>false</ep:passwordReq>
53
+ <ep:confID>1406668295</ep:confID>
54
+ </ep:recording>
55
+ </serv:bodyContent>
56
+ </serv:body>
57
+ </serv:message>
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe CanvasWebex::Meeting do
4
+ let(:client) {CanvasWebex::Service.new('proserv_instructure', 'foo', '123', 'instructure', nil)}
5
+ subject{CanvasWebex::Meeting.retrieve(123, client)}
6
+
7
+ before(:each) do
8
+ stub_call('get_meeting')
9
+ end
10
+
11
+ it 'returns the meeting name' do
12
+ subject.conf_name.should == "test"
13
+ end
14
+
15
+ it 'returns the meeting key' do
16
+ subject.meeting_key.should == "807833538"
17
+ end
18
+
19
+ it 'returns the start date' do
20
+ subject.start_date.should == "10/22/2013 10:59:19"
21
+ end
22
+
23
+ it 'returns the host_joined value' do
24
+ subject.host_joined.should == "false"
25
+ end
26
+
27
+ it 'returns the status' do
28
+ subject.status.should == "NOT_INPROGRESS"
29
+ end
30
+
31
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe CanvasWebex::Service do
4
+ subject {CanvasWebex::Service.new('proserv_instructure', 'foo', '123', 'instructure', nil)}
5
+
6
+ describe 'api_calls' do
7
+
8
+ it 'gets a list of meeting summaries response body' do
9
+ stub_call('meeting_list')
10
+ result = subject.list_summary_meetings
11
+ result.name.should == 'bodyContent'
12
+ end
13
+
14
+ it 'get a meeting response body' do
15
+ stub_call('get_meeting')
16
+ result = subject.get_meeting(123)
17
+ result.name.should == 'bodyContent'
18
+ end
19
+
20
+ it 'get the host meeting url response body' do
21
+ stub_call('host_meeting_url')
22
+ result = subject.host_meeting_url(123, nil)
23
+ result.name.should == 'bodyContent'
24
+ end
25
+
26
+ it 'get the join meeting url response body' do
27
+ stub_call('join_meeting_url')
28
+ result = subject.join_meeting_url(123, 'foo@bar')
29
+ result.name.should == 'bodyContent'
30
+ end
31
+
32
+ it 'recording list response body' do
33
+ stub_call('recording_list')
34
+ result = subject.list_recordings(123)
35
+ result.name.should == 'bodyContent'
36
+ end
37
+
38
+ it 'geta create a meeting response body' do
39
+ stub_call('create_meeting')
40
+ result = subject.create_meeting('test')
41
+ result.name.should == 'bodyContent'
42
+ end
43
+
44
+
45
+ end
46
+
47
+
48
+ end
@@ -0,0 +1,42 @@
1
+ require 'canvas_webex/service'
2
+ require 'canvas_webex/meeting'
3
+ require 'nokogiri'
4
+ require 'uri'
5
+ require 'net/http'
6
+ require 'webmock/rspec'
7
+ require 'pry'
8
+
9
+ WebMock.disable_net_connect!
10
+
11
+
12
+ RSpec.configure do |config|
13
+ # some (optional) config here
14
+ end
15
+
16
+ def fixture(file)
17
+ File.new(File.join(File.expand_path("../fixtures", __FILE__), file + ".xml"))
18
+ end
19
+
20
+ def stub_call(fixture_name, status = 200, request_body = nil)
21
+ stub = stub_request(:post, "https://instructure.webex.com/WBXService/XMLService")
22
+ stub = stub.with(body: request_body) if request_body
23
+ stub.to_return(status: status, body:fixture(fixture_name), headers:{
24
+ :content_type => 'application/xml; charset=utf-8'})
25
+ end
26
+
27
+ class Object
28
+ def try(*a, &b)
29
+ if a.empty? && block_given?
30
+ yield self
31
+ else
32
+ public_send(*a, &b) if respond_to?(a.first)
33
+ end
34
+ end
35
+ end
36
+
37
+ class String
38
+ def camelcase(first_letter = :upper)
39
+ return self if self !~ /_/ && self =~ /[A-Z]+.*/
40
+ split('_').map{|e| e.capitalize}.join
41
+ end
42
+ end
metadata ADDED
@@ -0,0 +1,161 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: canvas_webex
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Nathan Mills
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-10-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: nokogiri
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: webmock
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: pry
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: Canvas WebEx is an Cisco Webex plugin for the Instructure Canvas LMS.
95
+ It allows teachers and administrators to create and launch WEbEx conferences directly
96
+ from their courses.
97
+ email:
98
+ - nathanm@instructure.com
99
+ executables: []
100
+ extensions: []
101
+ extra_rdoc_files: []
102
+ files:
103
+ - .gitignore
104
+ - Gemfile
105
+ - LICENSE.txt
106
+ - README.md
107
+ - Rakefile
108
+ - app/models/cisco_webex_conference.rb
109
+ - app/views/plugins/_webex_settings.html.erb
110
+ - canvas_webex.gemspec
111
+ - lib/canvas/plugins/cisco_webex.rb
112
+ - lib/canvas/plugins/validators/cisco_webex_validator.rb
113
+ - lib/canvas_webex.rb
114
+ - lib/canvas_webex/meeting.rb
115
+ - lib/canvas_webex/service.rb
116
+ - lib/canvas_webex/version.rb
117
+ - spec/fixtures/create_meeting.xml
118
+ - spec/fixtures/get_meeting.xml
119
+ - spec/fixtures/host_meeting_url.xml
120
+ - spec/fixtures/join_meeting_url.xml
121
+ - spec/fixtures/meeting_list.xml
122
+ - spec/fixtures/recording_list.xml
123
+ - spec/lib/canvas_webex/meeting_spec.rb
124
+ - spec/lib/canvas_webex/service_spec.rb
125
+ - spec/spec_helper.rb
126
+ homepage: http://instructure.com
127
+ licenses: []
128
+ post_install_message:
129
+ rdoc_options: []
130
+ require_paths:
131
+ - app
132
+ - lib
133
+ required_ruby_version: !ruby/object:Gem::Requirement
134
+ none: false
135
+ requirements:
136
+ - - ! '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ required_rubygems_version: !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ requirements: []
146
+ rubyforge_project:
147
+ rubygems_version: 1.8.23
148
+ signing_key:
149
+ specification_version: 3
150
+ summary: Cisco WebEx integration for Instructure Canvas (http://instructure.com).
151
+ test_files:
152
+ - spec/fixtures/create_meeting.xml
153
+ - spec/fixtures/get_meeting.xml
154
+ - spec/fixtures/host_meeting_url.xml
155
+ - spec/fixtures/join_meeting_url.xml
156
+ - spec/fixtures/meeting_list.xml
157
+ - spec/fixtures/recording_list.xml
158
+ - spec/lib/canvas_webex/meeting_spec.rb
159
+ - spec/lib/canvas_webex/service_spec.rb
160
+ - spec/spec_helper.rb
161
+ has_rdoc: