Class: Innowhite

Inherits:
Object
  • Object
show all
Defined in:
lib/innowhite.rb

Constant Summary collapse

@@errors =
{
  :user_miss =>         [1, "user value missed"],
  :fetch_fail =>        [2, "failed to fetch, maybe you have entered wrong username"],
  :room_miss =>         [3, "room not set"],
  :description_miss =>  [4, "description value not set"],
  :start_time =>        [5, "startTime value missed"],
  :end_time =>          [6, "endTime value missed"],
  :time_zone =>         [7, "timeZone value missed"],
}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeInnowhite

Returns a new instance of Innowhite.



19
20
21
# File 'lib/innowhite.rb', line 19

def initialize
  load_settings
end

Instance Attribute Details

#mod_nameObject

Returns the value of attribute mod_name.



17
18
19
# File 'lib/innowhite.rb', line 17

def mod_name
  @mod_name
end

#org_nameObject

Returns the value of attribute org_name.



17
18
19
# File 'lib/innowhite.rb', line 17

def org_name
  @org_name
end

#private_keyObject

Returns the value of attribute private_key.



17
18
19
# File 'lib/innowhite.rb', line 17

def private_key
  @private_key
end

#server_addressObject

Returns the value of attribute server_address.



17
18
19
# File 'lib/innowhite.rb', line 17

def server_address
  @server_address
end

#subObject

Returns the value of attribute sub.



17
18
19
# File 'lib/innowhite.rb', line 17

def sub
  @sub
end

Class Method Details

.gen_checksum(params) ⇒ Object



119
120
121
122
123
# File 'lib/innowhite.rb', line 119

def self.gen_checksum(params)
  key = params.delete(:key)
  temp = params.to_param
  temp + "&checksum=#{Digest::SHA1.hexdigest(URI.escape(temp) + key)}"
end

Instance Method Details

#cancel_meeting(room_id) ⇒ Object



93
94
95
96
97
98
# File 'lib/innowhite.rb', line 93

def cancel_meeting(room_id)
  checksum = main_cheksum(@parent_org, @org_name)
  par = url_generator(@parent_org, @org_name)
  url = URI.escape("#{@api_address}cancel_meeting?roomId=#{room_id}&#{par}&checksum=#{checksum}")
  data(request("get", url))[:status]
end

#create_room(params = {}) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/innowhite.rb', line 23

def create_room(params = {})
  return err(*@@errors[:user_miss]) if params[:user].blank?
  room_id = get_room_id(params[:user])
  return room_id[:errors] if room_id.has_key?(:errors)
  res = create_room_info(room_id[:data], params[:user], params[:tags], params[:desc], @org_name)
  $stdout << res.inspect
  res[:status] ? data({"room_id" => room_id[:data], "address" => res[:data]}) : res[:errors]
end

#get_room_id(user) ⇒ Object



125
126
127
128
# File 'lib/innowhite.rb', line 125

def get_room_id(user)
  url = "#{@api_address}api_create_room?#{{:parentOrg => @parent_org, :orgName => @org_name, :user => user, :key => @private_key}.to_param}"
  request("get", url)
end

#get_scheduled_list(params = {}) ⇒ Object



86
87
88
89
90
91
# File 'lib/innowhite.rb', line 86

def get_scheduled_list(params={})
  checksum = main_cheksum(params[:parentOrg] || @parent_org, params[:orgName] || @org_name)
  par = url_generator(params[:parentOrg] || @parent_org, params[:orgName] || @org_name)
  url = URI.escape("#{@api_address}get_scheduled_sessions?#{par}&checksum=#{checksum}&tags=#{params[:tags]}&user=#{params[:user]}")
  request("get", url)
end

#get_sessions(params = {}) ⇒ Object



41
42
43
44
45
46
47
48
49
50
# File 'lib/innowhite.rb', line 41

def get_sessions(params = {})
  temp = url_generator(params[:parentOrg] || @parent_org, params[:orgName] || @org_name)
  checksum = generating_checksum(URI.escape(temp))
  tmp = "#{temp}&user=#{params[:user]}&tags=#{params[:tags]}"
  url = URI.escape("#{@api_address}list_sessions?#{tmp}&checksum=#{checksum}")
  request("get", url)

rescue
  err(*@@errors[:fetch_fail])
end

#getRecordingURL(room_id) ⇒ Object



114
115
116
117
# File 'lib/innowhite.rb', line 114

def getRecordingURL(room_id)
  url = "#{@api_address}api_get_recording_urls?#{{:room_id => room_id}.to_param}"
  data(request("get", url))
end

#join_meeting(room_id, user) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/innowhite.rb', line 32

def join_meeting(room_id, user)
  return err(*@@errors[:user_miss]) if user.nil?
  return err(*@@errors[:room_miss]) if room_id.nil?
  url = "#{@api_address}exist_session?roomId=#{room_id}"
  res = request("post", url)
  return res[:errors] if res.has_key?(:errors)
  res[:data].blank? ? err(-1, "Unknow") : data(join_room_url(@org_name, room_id, user, false))
end

#past_sessions(params = {}) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
# File 'lib/innowhite.rb', line 74

def past_sessions(params = {})
  temp = url_generator(params[:parentOrg] || @parent_org, params[:orgName] || @org_name)
  checksum = generating_checksum(URI.escape(temp))

  tmp = "#{temp}&user=#{params[:user]}&tags=#{params[:tags]}"
  url = URI.escape("#{@api_address}past_sessions?#{tmp}&checksum=#{checksum}")
  request("get", url)

  rescue
    err(*@@errors[:fetch_fail])
end

#schedule_meeting(params = {}) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/innowhite.rb', line 52

def schedule_meeting(params = {})
  return err(*@@errors[:user_miss]) if !params[:user] || params[:user].blank?
  return err(*@@errors[:description_miss]) if !params[:description] || params[:description].empty?

  return err(*@@errors[:start_time]) if !params[:startTime] || params[:startTime].blank?
  return err(*@@errors[:end_time]) if !params[:endTime] || params[:endTime].blank?
  return err(*@@errors[:time_zone]) if !params[:timeZone] || params[:timeZone].blank?

  room_id = get_room_id(params[:user])
  return room_id[:errors] if room_id.has_key?(:errors)

  create_schedule(
      room_id,
      params[:user],
      params[:tags],
      params[:description],
      params[:parentOrg] || @parent_org,
      params[:startTime],
      params[:endTime],
      params[:timeZone])
end

#update_schedule(params = {}) ⇒ Object



100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/innowhite.rb', line 100

def update_schedule(params = {})
  checksum = main_cheksum(@parent_org, @org_name)
  params[:startTime] = params[:startTime].to_i  if !params[:startTime].blank? && (params[:startTime].is_a?(DateTime) || params[:startTime].is_a?(Time))
  params[:endTime] = params[:endTime].to_i  if !params[:endTime].blank? && (params[:endTime].is_a?(DateTime) || params[:endTime].is_a?(Time))

  request("put", "#{@api_address}update_schedule",
                           {:roomId => params[:room_id], :tags => params[:tags], :description => params[:description],
                            :parentOrg => @parent_org, :orgName => @org_name,
                            :checksum => checksum, :startTime => params[:startTime],
                            :endTime => params[:endTime], :timeZone => params[:timeZone]
                           }
      )[:status]
end