Module: Zoom::Actions::Meeting

Included in:
Client
Defined in:
lib/zoom/actions/meeting.rb

Instance Method Summary collapse

Instance Method Details

#meeting_create(*args) ⇒ Object

Create a meeting on Zoom, return the created meeting URL



7
8
9
10
11
12
# File 'lib/zoom/actions/meeting.rb', line 7

def meeting_create(*args)
  params = Zoom::Params.new(Utils.extract_options!(args))
  params.require(i[user_id])
  Utils.process_datetime_params!(:start_time, params)
  Utils.parse_response self.class.post("/users/#{params[:user_id]}/meetings", body: params.except(:user_id).to_json, query: { access_token: access_token })
end

#meeting_delete(*args) ⇒ Object

Delete a meeting on Zoom, return the deleted meeting ID.



15
16
17
18
19
# File 'lib/zoom/actions/meeting.rb', line 15

def meeting_delete(*args)
  options = Utils.extract_options!(args)
  Utils.require_params(i[id host_id], options)
  Utils.parse_response self.class.post('/meeting/delete', query: options)
end

#meeting_end(*args) ⇒ Object

End a meeting on Zoom, return the deleted meeting ID.



22
23
24
25
26
# File 'lib/zoom/actions/meeting.rb', line 22

def meeting_end(*args)
  options = Utils.extract_options!(args)
  Utils.require_params(i[id host_id], options)
  Utils.parse_response self.class.post('/meeting/end', query: options)
end

#meeting_get(*args) ⇒ Object

Get a meeting on Zoom via meeting ID, return the meeting info.



29
30
31
32
33
# File 'lib/zoom/actions/meeting.rb', line 29

def meeting_get(*args)
  options = Utils.extract_options!(args)
  Utils.require_params(i[id host_id], options)
  Utils.parse_response self.class.post('/meeting/get', query: options)
end

#meeting_list(*args) ⇒ Object

List all the scheduled meetings on Zoom.



36
37
38
39
40
41
42
43
# File 'lib/zoom/actions/meeting.rb', line 36

def meeting_list(*args)
  options = Utils.extract_options!(args)
  Utils.require_params(:host_id, options)
  Utils.process_datetime_params!(:start_time, options)
  # TODO Handle `page_size` attr, Defaults to 30. Max of 300 meetings.
  # TODO Handle `page_number` attr, Defaults to 1.
  Utils.parse_response self.class.post('/meeting/list', query: options)
end

#meeting_live(*args) ⇒ Object

Lists the live meetings on Zoom.



46
47
48
49
# File 'lib/zoom/actions/meeting.rb', line 46

def meeting_live(*args)
  options = Utils.extract_options!(args)
  Utils.parse_response self.class.post('/meeting/live', query: options)
end

#meeting_register(*args) ⇒ Object

Register for a meeting.



52
53
54
55
56
57
58
59
60
61
62
# File 'lib/zoom/actions/meeting.rb', line 52

def meeting_register(*args)
  options = Utils.extract_options!(args)
  Utils.require_params(i[id email first_name last_name], options)
  # TODO Verify country param by referring to the id value in country list JSON file
  # TODO Verify Purchasing Time Frame, should be "Within a month", "1-3 months", "4-6 months", "More than 6 months", "No timeframe".
  # TODO Verify Role in Purchase Process, should be "Decision Maker", "Evaluator/Recommender", "Influencer", "Not involved".
  # TODO Verify Number of Employees, should be "1-20", "21-50", "51-100", "101-250", "251-500", "501-1,000", "1,001-5,000", "5,001-10,000", "More than 10,000".
  # TODO Verify Custom Questions, should be JSON format
  # TODO Verify Language, should be "en-US", "en", "zh-CN", "zh", "en-ES", "es", “fr-FR” or "fr"
  Utils.parse_response self.class.post('/meeting/register', query: options)
end

#meeting_update(*args) ⇒ Object

Update meeting info on Zoom via meeting ID.



65
66
67
68
69
70
71
72
73
74
75
# File 'lib/zoom/actions/meeting.rb', line 65

def meeting_update(*args)
  options = Utils.extract_options!(args)
  Utils.require_params(i[id host_id type], options)
  Utils.process_datetime_params!(:start_time, options)
  # TODO Handle `topic` attr, Max of 300 characters.
  # TODO Handle `timezone` attr, refer to the id value in timezone list JSON file. like "America/Los_Angeles"
  # TODO Verify `password` attr, may only contain the following characters: a-z A-Z 0-9 @ - _
  # TODO Handle `option_audio` attr, Can be "both", "telephony", "voip".
  # TODO Handle `option_auto_record_type`, Can be "local", “cloud” or "none".
  Utils.parse_response self.class.post('/meeting/update', query: options)
end