Class: BigMarkerClient::Api::V1::Conference

Inherits:
Base
  • Object
show all
Defined in:
lib/big_marker_client.rb,
lib/big_marker_client/api/v1/conference.rb,
lib/big_marker_client/api/v1/conference/registration.rb

Defined Under Namespace

Classes: Registration

Constant Summary collapse

LIST_CONFERENCES =
"/conferences".freeze
SEARCH_CONFERENCES =
"/conferences/search".freeze
ASSOCIATED_SERIES_CONFERENCES =
"/conferences/get_associated_sessions/{id}".freeze
RECURRING_CONFERENCES =
"/conferences/recurring/{id}".freeze
CREATE_CONFERENCE =
"/conferences".freeze
UPDATE_CONFERENCE =
"/conferences/{id}".freeze
GET_CONFERENCE =
"/conferences/{id}".freeze
GET_CONFERENCE_PRESENTERS =
"/conferences/{id}/presenters".freeze
GET_CONFERENCE_ATTENDEES =
"/conferences/{id}/attendees".freeze
DELETE_CONFERENCE =
"/conferences/{id}".freeze
ENTER_CONFERENCE =
"/conferences/enter".freeze

Constants inherited from Base

Base::DEFAULT_PER_PAGE_SIZE

Class Method Summary collapse

Methods inherited from Base

delete, get, patch, post, put

Class Method Details

.associated_series(conference_id, params = {}) ⇒ BigMarkerClient::Models::Conference[]

get series related to a conference.

  • page: pagination page

  • per_page: pagination page size (20*)

Parameters:

  • conference_id (String)

    conference identifier

  • params (Hash) (defaults to: {})

    recognized are:

Returns:



91
92
93
94
95
96
97
# File 'lib/big_marker_client/api/v1/conference.rb', line 91

def associated_series(conference_id, params = {})
  result = get(replace_path_params(path: ASSOCIATED_SERIES_CONFERENCES,
                                   replacements: { "{id}": conference_id }), params)
  return map_to_model_array(result["conferences"]) if result["conferences"]

  result
end

.associated_series_all(conference_id, params = {}) ⇒ Object

helper method to retrieve all pages for the #associated_series method

See Also:

  • #associated_series


102
103
104
105
# File 'lib/big_marker_client/api/v1/conference.rb', line 102

def associated_series_all(conference_id, params = {})
  path = replace_path_params(path: ASSOCIATED_SERIES_CONFERENCES, replacements: { "{id}": conference_id })
  loop_over(path, "conferences", ::BigMarkerClient::Models::Conference, params)
end

.attendees(conference_id, params = {}) ⇒ BigMarkerClient::Models::Attendee[]

Get all registered attendees of a conference. Recognized @params are:

  • page: pagination page

  • per_page: pagination page size (20*)

Parameters:

  • conference_id (String)

    conference identifier

  • params (Hash) (defaults to: {})

    recognized are:

Returns:



202
203
204
205
206
207
208
# File 'lib/big_marker_client/api/v1/conference.rb', line 202

def attendees(conference_id, params = {})
  result = get(replace_path_params(path: GET_CONFERENCE_ATTENDEES,
                                   replacements: { "{id}": conference_id }), params)
  return map_to_model_array(result["attendees"], ::BigMarkerClient::Models::Attendee) if result["attendees"]

  result
end

.attendees_all(conference_id, params = {}) ⇒ Object

helper method to retrieve all pages for the #attendees method

See Also:

  • #attendees


213
214
215
216
# File 'lib/big_marker_client/api/v1/conference.rb', line 213

def attendees_all(conference_id, params = {})
  path = replace_path_params(path: GET_CONFERENCE_ATTENDEES, replacements: { "{id}": conference_id })
  loop_over(path, "attendees", ::BigMarkerClient::Models::Attendee, params)
end

.create(body = {}) ⇒ BigMarkerClient::Models::Conference

create a conference either with a Models::Conference object or single properties as hash

Parameters:

Returns:



149
150
151
152
153
154
155
# File 'lib/big_marker_client/api/v1/conference.rb', line 149

def create(body = {})
  body = body.to_h if body.is_a?(::BigMarkerClient::Models::Base)
  result = post(CREATE_CONFERENCE, body)
  return ::BigMarkerClient::Models::Conference.new(result) if result["id"]

  result
end

.destroy(conference_id) ⇒ Object

delete a conference

Parameters:

  • conference_id (String)

    conference identifier



160
161
162
# File 'lib/big_marker_client/api/v1/conference.rb', line 160

def destroy(conference_id)
  delete(replace_path_params(path: DELETE_CONFERENCE, replacements: { "{id}": conference_id }))
end

.enter(conference_id, name, email, body = {}) ⇒ Hash

enter a conference towards an enterprise iframe,

  • register_attendee_to_webinar: true/false*

  • attendee_first_name: First name of the attendee for registration (see register_attendee_to_webinar)

  • attendee_last_name: Last name of the attendee for registration (see register_attendee_to_webinar)

  • custom_user_id: an external user id for matching

  • role: the role of the user that is entering the webinar (attendee*, moderator, presenter)

  • exit_uri: URL that attendees will be redirected to after the webinar

Parameters:

  • conference_id (String)

    conference identifier

  • name (String)

    attendee name

  • email (String)

    attendee email

  • body (Hash) (defaults to: {})

    recognized are:

Returns:

  • (Hash)

    enter_token: auth token for conference, enter_uri: URL to enter conference



177
178
179
180
# File 'lib/big_marker_client/api/v1/conference.rb', line 177

def enter(conference_id, name, email, body = {})
  body.merge!(id: conference_id, attendee_name: name, attendee_email: email)
  post(ENTER_CONFERENCE, body)
end

.list(params = {}) ⇒ BigMarkerClient::Models::Conference[]

lists all conferences, where date range con only be influenced indirectly.

  • role: Filter by member role (all*, hosting, attending)

  • type: Filter by conference type (future*, past, all, multiple_times, future_do_not_include_happening,

    future_with_24_hour_room, past_with_recording, always_open,
    happening_now)
    
  • query: search in conference title

  • page: pagination page

  • page_count: pagination page size (20*), ATTENTION: this is called per_page everywhere else!

Parameters:

  • params (Hash) (defaults to: {})

    recognized are:

Returns:



29
30
31
32
33
34
35
# File 'lib/big_marker_client/api/v1/conference.rb', line 29

def list(params = {})
  params["page_count"] ||= params["per_page"] if params["per_page"]
  result = get(LIST_CONFERENCES, params)
  return map_to_model_array(result["conferences"]) if result["conferences"]

  result
end

.list_all(params = {}) ⇒ Object

helper method to retrieve all pages for the #list method

See Also:

  • #list


40
41
42
43
# File 'lib/big_marker_client/api/v1/conference.rb', line 40

def list_all(params = {})
  params["page_count"] ||= params["per_page"] if params["per_page"]
  loop_over(LIST_CONFERENCES, "conferences", ::BigMarkerClient::Models::Conference, params)
end

.presenters(conference_id) ⇒ BigMarkerClient::Models::Presenter[]

Get all presenters of a conference.

Parameters:

  • conference_id (String)

    conference identifier

Returns:



186
187
188
189
190
191
192
193
# File 'lib/big_marker_client/api/v1/conference.rb', line 186

def presenters(conference_id)
  result = get(replace_path_params(path: GET_CONFERENCE_PRESENTERS, replacements: { "{id}": conference_id }))
  if result["presenters"]
    return map_to_model_array(result["presenters"], ::BigMarkerClient::Models::Presenter)
  end

  result
end

.recurring(conference_id, params = {}) ⇒ BigMarkerClient::Models::Conference[]

get child conferences of a parent recurring conference.

  • start_time: conferences with start time after this date (Unix timestamp)

  • end_time: conferences with end time before this date (Unix timestamp)

  • page: pagination page

  • per_page: pagination page size (20*)

Parameters:

  • conference_id (String)

    conference identifier

  • params (Hash) (defaults to: {})

    recognized are:

Returns:



116
117
118
119
120
121
122
# File 'lib/big_marker_client/api/v1/conference.rb', line 116

def recurring(conference_id, params = {})
  result = get(replace_path_params(path: RECURRING_CONFERENCES,
                                   replacements: { "{id}": conference_id }), params)
  return map_to_model_array(result["child_conferences"]) if result["child_conferences"]

  result
end

.recurring_all(conference_id, params = {}) ⇒ Object

helper method to retrieve all pages for the #recurring method

See Also:

  • #recurring


127
128
129
130
# File 'lib/big_marker_client/api/v1/conference.rb', line 127

def recurring_all(conference_id, params = {})
  path = replace_path_params(path: RECURRING_CONFERENCES, replacements: { "{id}": conference_id })
  loop_over(path, "child_conferences", ::BigMarkerClient::Models::Conference, params)
end

.search(params = {}) ⇒ BigMarkerClient::Models::Conference[]

search for conferences with specific matching criteria.

  • title: search in conference title

  • start_time: conferences with start time after this date (Unix timestamp)

  • end_time: conferences with end time before this date (Unix timestamp)

  • conference_ids: select conferences based on their IDs (comma separated)

  • presenter_member_ids: select conferences based on their presenters IDs (comma separated)

  • role: Filter by member role (all*, hosting, attending)

  • type: Filter by conference type (evergreen_parent evergreen_child recurring_parent recurring_child

    meetingspace ondemand live_webinar webcast)
    
  • page: pagination page

  • per_page: pagination page size (20*)

Parameters:

  • params (Hash) (defaults to: {})

    recognized are:

Returns:



59
60
61
62
63
64
# File 'lib/big_marker_client/api/v1/conference.rb', line 59

def search(params = {})
  result = post(SEARCH_CONFERENCES, params)
  return map_to_model_array(result["conferences"]) if result["conferences"]

  result
end

.search_all(params = {}) ⇒ Object

helper method to retrieve all pages for the #search method

See Also:

  • #search


69
70
71
# File 'lib/big_marker_client/api/v1/conference.rb', line 69

def search_all(params = {})
  loop_over(SEARCH_CONFERENCES, "conferences", ::BigMarkerClient::Models::Conference, params, :post)
end

.show(conference_id) ⇒ BigMarkerClient::Models::Conference

get one conference based on it’s ID

Parameters:

  • conference_id (String)

    conference identifier

Returns:



77
78
79
80
81
82
# File 'lib/big_marker_client/api/v1/conference.rb', line 77

def show(conference_id)
  result = get(replace_path_params(path: GET_CONFERENCE, replacements: { "{id}": conference_id }))
  return ::BigMarkerClient::Models::Conference.new(result["conference"]) if result["conference"]

  result
end

.update(conference_id, body = {}) ⇒ BigMarkerClient::Models::Conference

update a conference either with a Models::Conference object or single properties as hash

Parameters:

Returns:



137
138
139
140
141
142
143
# File 'lib/big_marker_client/api/v1/conference.rb', line 137

def update(conference_id, body = {})
  body = body.to_h if body.is_a?(::BigMarkerClient::Models::Conference)
  result = put(replace_path_params(path: UPDATE_CONFERENCE, replacements: { "{id}": conference_id }), body)
  return ::BigMarkerClient::Models::Conference.new(result) if result["id"]

  result
end