innowhite 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/innowhite.gemspec +1 -1
  2. data/lib/innowhite.rb +105 -54
  3. metadata +2 -2
data/innowhite.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{innowhite}
5
- s.version = "0.1.7"
5
+ s.version = "0.1.8"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = [%q{bainur}]
data/lib/innowhite.rb CHANGED
@@ -13,7 +13,7 @@ class Innowhite
13
13
  end
14
14
 
15
15
  def load_settings
16
- settings = YAML.load_file('config/innowhite.yml')
16
+ settings = YAML.load_file('config/innowhite_test.yml')
17
17
  @server_address = settings["innowhite"]["server_address"]
18
18
  @api_address = settings["innowhite"]["api_address"]
19
19
  @private_key = settings["innowhite"]["private_key"]
@@ -21,20 +21,6 @@ class Innowhite
21
21
  @org_name = @parent_org
22
22
  end
23
23
 
24
- # def create_room(user,org_name1=nil,parent_org = nil,desc = nil,tags=nil)
25
- # parent_org ||= @parent_org
26
- # org_name1 ||= @org_name
27
- #
28
- # room_id = set_room_id
29
- # address = join_room_helper(@server_address,@org_name, room_id, user,true)
30
- # res = create_room_info(room_id,user,tags,desc, parent_org,address)
31
- # res = res.include?("Missing")
32
- # if res == true
33
- # return "Failed to fetch, maybe you have entered wrong username / organization name .."
34
- # else
35
- # return {:address => address, :room_id => room_id}
36
- # end
37
- # end
38
24
  def create_room(params = {})
39
25
  params[:parentOrg] ||= @parent_org
40
26
  params[:orgName] ||= @org_name
@@ -101,43 +87,7 @@ class Innowhite
101
87
  end
102
88
 
103
89
  end
104
- #
105
- # def get_sessions(status)
106
- # ids = []
107
- # descs = []
108
- # res = []
109
- # url = URI.escape("http://innowhite.com/get_active_session?orgName=#{@org_name}&status=#{status}")
110
- #
111
- # x = Nokogiri::XML(open(url))
112
- # x.xpath('//web-session/session-id').each{|m| ids << m.text}
113
- # x.xpath('//web-session/session-desc').each{|m| descs << m.text}
114
- #
115
- # ids.each_with_index do |id, index|
116
- # res << {:id => id, :description => descs[index]}
117
- # end
118
- # return res
119
- # end
120
-
121
- # def get_sessions(parent_org = nil, org_name1 = nil,user = nil,tag = nil)
122
- # parent_org ||= @parent_org
123
- # org_name1 = parent_org if org_name1.nil?
124
- # ids = []
125
- # descs = []
126
- # res = []
127
- # tmp = "parentOrg=#{parent_org}&orgName=#{org_name1}&user=#{user}&tags=#{tag}"
128
- # checksum = generating_checksum(URI.escape(tmp))
129
- # pp "#{@api_address}list_sessions?#{tmp}&cheksum=#{checksum}"
130
- # url = URI.escape("#{@api_address}list_sessions?#{tmp}&cheksum=#{checksum}")
131
- #
132
- # x = Nokogiri::XML(open(url))
133
- # x.xpath('//web-session/session-id').each{|m| ids << m.text}
134
- # x.xpath('//web-session/session-desc').each{|m| descs << m.text}
135
- #
136
- # ids.each_with_index do |id, index|
137
- # res << {:id => id, :description => descs[index]}
138
- # end
139
- # return res
140
- # end
90
+
141
91
  def past_sessions(params = {})
142
92
  begin
143
93
  params[:parentOrg] ||= @parent_org
@@ -166,6 +116,7 @@ class Innowhite
166
116
  return "Error fetching sessions check the organization and private key .."
167
117
  end
168
118
  end
119
+
169
120
  def get_sessions(params = {})
170
121
  begin
171
122
  params[:parentOrg] ||= @parent_org
@@ -183,8 +134,7 @@ class Innowhite
183
134
  res = []
184
135
  checksum_tmp = "parentOrg=#{parent_org}&orgName=#{org_name1}"
185
136
  tmp = "parentOrg=#{parent_org}&orgName=#{org_name1}&user=#{user}&tags=#{tags}"
186
- checksum = generating_checksum(URI.escape(checksum_tmp))
187
- #pp "#{@api_address}list_sessions?#{tmp}&cheksum=#{checksum}"
137
+ checksum = generating_checksum(URI.escape(checksum_tmp))
188
138
  url = URI.escape("#{@api_address}list_sessions?#{tmp}&checksum=#{checksum}")
189
139
 
190
140
  x = Nokogiri::XML(open(url))
@@ -200,8 +150,109 @@ class Innowhite
200
150
  end
201
151
  end
202
152
 
153
+ # A call to schedule a session
154
+ #
155
+ #
156
+
157
+ def schedule_meeting(params = {})
158
+ @org_name ||= params[:orgName]
159
+ tags = params[:tags]
160
+ start_time = params[:startTime]
161
+ time_zone = params[:timeZone]
162
+ end_time = params[:endTime]
163
+ user = params[:user]
164
+ desc = params[:description]
165
+ room_id = set_room_id
166
+
167
+ address = join_room_helper(@server_address,@org_name, room_id, user,true)
168
+ create_schedule(room_id, user, tags,desc, @parent_org, address,start_time,end_time, time_zone)
169
+ end
170
+
171
+ def create_schedule(room_id,user,tags,desc, parent_org,address, start_time, end_time, time_zone)
172
+ checksum_tmp = "parentOrg=#{parent_org}&orgName=#{parent_org}"
173
+ checksum = generating_checksum(URI.escape(checksum_tmp))
174
+ address = join_room_helper(@server_address,@org_name, room_id, user,true)
175
+ res = RestClient.post("#{@api_address}create_schedule_meeting",
176
+ {:roomId => room_id, :user => user, :tags => tags,:desc => desc,:startTime => start_time,
177
+ :endTime => end_time, :timeZone => time_zone,
178
+ :parentOrg => parent_org, :address => address, :orgName => parent_org,
179
+ :checksum => checksum
180
+ }
181
+ )
182
+ return res
183
+ end
184
+
185
+ def get_scheduled_list(params={})
186
+ @org_name ||= params[:orgName]
187
+ checksum = main_cheksum(@parent_org, @org_name)
188
+ tags = params[:tags] if params[:tags]
189
+
190
+ par = url_generator(@parent_org, @org_name)
191
+ url = URI.escape("#{@api_address}get_scheduled_sessions?#{par}&checksum=#{checksum}&tags=#{tags}")
192
+ x = Nokogiri::XML(open(url))
193
+ ids = [], start_at = [], end_at = [], zone = []
194
+ desc = []
195
+ x.xpath('//web-session/session-id').each{|m| ids << m.text}
196
+ x.xpath('//web-session/session-desc').each{|m| desc << m.text}
197
+ x.xpath('//web-session/start-at').each{|m| start_at << m.text.to_time.to_i rescue 0}
198
+ x.xpath('//web-session/end-at').each{|m| end_at << m.text.to_time.to_i rescue 0}
199
+ x.xpath('//web-session/start-at').each{|m| zone << m.text.to_datetime.utc_offset rescue 0}
200
+
201
+ res = []
202
+ ids.each_with_index do |id, index|
203
+ res << {
204
+ :tags => tags, :orgName => @org_name,
205
+ :room_id => id,
206
+ :startTime => start_at[index], :timeZone => zone[index],
207
+ :endTime => end_at[index],
208
+ :moderatorName => "",
209
+ :room_desc => desc[index]
210
+ }
211
+ end
212
+ return res
213
+ end
214
+
215
+
216
+ def cancel_meeting(room_id)
217
+ checksum = main_cheksum(@parent_org, @org_name)
218
+ par = url_generator(@parent_org, @org_name)
219
+ url = URI.escape("#{@api_address}cancel_meeting?roomId=#{room_id}&#{par}&checksum=#{checksum}")
220
+
221
+ x = Nokogiri::XML(open(url))
222
+ return x.xpath("//success").map(&:text)
223
+ end
224
+
225
+ def update_schedule(params = {})
226
+ checksum = main_cheksum(@parent_org, @org_name)
227
+ room_id = params[:room_id]
228
+ start_time = params[:startTime] if params[:startTime]
229
+ time_zone = params[:timeZone] if params[:timeZone]
230
+ end_time = params[:endTime] if params[:endTime]
231
+ desc = params[:description] if params[:description]
232
+ tags = params[:tags]
233
+
234
+ res = RestClient.put("#{@api_address}update_schedule",
235
+ {:roomId => room_id, :tags => tags,:description => desc,
236
+ :parentOrg => @parent_org, :orgName => @org_name,
237
+ :checksum => checksum
238
+ }
239
+ )
240
+ end
241
+
242
+
243
+
203
244
  private
204
245
 
246
+ def url_generator(parent_org,org_name)
247
+ url = "parentOrg=#{parent_org}&orgName=#{org_name}"
248
+ return url
249
+ end
250
+ def main_cheksum(parent_org, org_name)
251
+ checksum_tmp = url_generator(parent_org, org_name)
252
+ checksum = generating_checksum(URI.escape(checksum_tmp))
253
+ return checksum
254
+ end
255
+
205
256
  def join_room_helper(server_addr, org_name, room_id,user, is_teacher)
206
257
  action = "#{server_addr}JoinRoom?"
207
258
  address = "parentOrg=#{@parent_org}&orgName=#{org_name}&roomId=#{room_id}&user=#{user}&roomLeader=#{is_teacher}"
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 7
9
- version: 0.1.7
8
+ - 8
9
+ version: 0.1.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - bainur