webex 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,65 @@
1
+ module Webex
2
+ module Meeting
3
+ # comment
4
+ class Attendee
5
+ include Webex
6
+ attr_accessor :meeting_key, :back_url, :invitation, :attendees, :cancel_mail, :email
7
+
8
+ # attendees: [{FullName: FullName1, EmailAddress: nil, PhoneCountry: nil, PhoneArea: nil, PhoneLocal: nil, PhoneExt: nil, TimeZone: nil, Language: nil, Locale: nil, AddToAddressBook: nil},
9
+ # {FullName: FullName1, EmailAddress: nil, PhoneCountry: nil, PhoneArea: nil, PhoneLocal: nil, PhoneExt: nil, TimeZone: nil, Language: nil, Locale: nil, AddToAddressBook: nil},
10
+ # {FullName: FullName1, EmailAddress: nil, PhoneCountry: nil, PhoneArea: nil, PhoneLocal: nil, PhoneExt: nil, TimeZone: nil, Language: nil, Locale: nil, AddToAddressBook: nil}]
11
+ def initialize(attributes = {})
12
+ attributes.each { |k, v| send("#{k}=", v) }
13
+ env_attributes!
14
+ option_required! :back_url, :meeting_key
15
+ end
16
+
17
+ def add
18
+ option_required! :attendees
19
+ { params: generate_params(api_type: 'AA'),
20
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
21
+ end
22
+
23
+ def delete
24
+ option_required! :email
25
+ { params: generate_params(api_type: 'DA'),
26
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
27
+ end
28
+
29
+ def detail
30
+ option_required! :email
31
+ { params: generate_params(api_type: 'MD'),
32
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
33
+ end
34
+
35
+ private
36
+
37
+ def cancel_mail?
38
+ cancel_mail
39
+ end
40
+
41
+ def attendees_hash
42
+ index_table ={FullName: :FN, EmailAddress: :EA, PhoneCountry: :PhoneCountry, PhoneArea: :PhoneArea, PhoneLocal: :PhoneLocal, PhoneExt: :PhoneExt, TimeZone: :TimeZone, Language: :Language, Locale: :Locale, AddToAddressBook: :AddToAddressBook}
43
+ hash = {}
44
+ attendees.each_with_index do |attendee, index|
45
+ attendee.each do |key, value|
46
+ hash.merge!(:"#{index_table[key]}#{index + 1}" => value)
47
+ end
48
+ end
49
+ hash
50
+ end
51
+
52
+ def generate_params(overwrite_params = {})
53
+ result = {}
54
+ result[:AT] = overwrite_params[:api_type]
55
+ result[:MK] = meeting_key
56
+ result[:BU] = back_url
57
+ result[:EM] = email
58
+ result[:EI] = invitation
59
+ result.merge!(attendees_hash) if result[:AT] == 'AA'
60
+ result[:EC] = cancel_mail? if result[:AT] == 'DA'
61
+ result.delete_if { |k, v| v.nil? }
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,58 @@
1
+ module Webex
2
+ module Meeting
3
+ # comment
4
+ class Presenter
5
+ include Webex
6
+ attr_accessor :meeting_key, :back_url, :email, :full_name, :invitation,
7
+ :phones, :cancel_mail
8
+ # phones = {PhoneCountry: nil, PhoneArea: nil, PhoneNumber: nil, PhoneExt: nil}
9
+
10
+ def initialize(attributes = {})
11
+ attributes.each { |k, v| send("#{k}=", v) }
12
+ env_attributes!
13
+ option_required! :back_url
14
+ end
15
+
16
+ def add
17
+ option_required! :full_name
18
+ { params: generate_params(api_type: 'AP'),
19
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
20
+ end
21
+
22
+ def delete
23
+ { params: generate_params(api_type: 'DP'),
24
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
25
+ end
26
+
27
+ private
28
+
29
+ def cancel_mail?
30
+ cancel_mail
31
+ end
32
+
33
+ def phone_params
34
+ result = {}
35
+ result[:PC] = phones[:PhoneCountry]
36
+ result[:PA] = phones[:PhoneArea]
37
+ result[:PN] = phones[:PhoneNumber]
38
+ result[:PE] = phones[:PhoneExt]
39
+ result
40
+ end
41
+
42
+ def generate_params(overwrite_params = {})
43
+ result = {}
44
+ result[:AT] = overwrite_params[:api_type]
45
+ result[:MK] = meeting_key
46
+ result[:BU] = back_url
47
+ result[:FN] = full_name
48
+ result[:EM] = email
49
+ if result[:AT] == 'AP'
50
+ result[:EI] = invitation
51
+ result.merge!(phone_params) if phones
52
+ end
53
+ result[:EC] = cancel_mail? if result[:AT] == 'DP'
54
+ result.delete_if { |k, v| v.nil? }
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,84 @@
1
+ module Webex
2
+ module Meeting
3
+ # comment
4
+ class Registration
5
+ include Webex
6
+ attr_accessor :meeting_key, :back_url, :first_name, :last_name, :email_address, :job_title,
7
+ :computer_name, :address_1, :address_2, :city, :state, :zip_code, :country,
8
+ :phone_number, :fax, :name_and_values, :text_box_contents, :check_box_contents,
9
+ :radio_button_contents, :dropdown_list_selections
10
+
11
+ def initialize(attributes = {})
12
+ attributes.each { |k, v| send("#{k}=", v) }
13
+ env_attributes!
14
+ option_required! :back_url
15
+ end
16
+
17
+ def form
18
+ option_required! :meeting_key
19
+ { params: generate_params(api_type: 'GF'),
20
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
21
+ end
22
+
23
+ def register
24
+ option_required! :meeting_key, :first_name, :last_name, :email_address, :job_title, :computer_name
25
+ { params: generate_params(api_type: 'RM'),
26
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
27
+ end
28
+
29
+ private
30
+
31
+ def name_and_value_params
32
+ attribute_length!(15, name_and_values)
33
+ hash = {}
34
+ name_and_values.each_with_index do |params, index|
35
+ hash.merge!(:"name#{index + 1}" => params[:name])
36
+ hash.merge!(:"value#{index + 1}" => params[:value])
37
+ end
38
+ hash
39
+ end
40
+
41
+ def tc_params
42
+ attributes = [ text_box_contents, check_box_contents, radio_button_contents, dropdown_list_selections ]
43
+ keys = ['TX', 'CB', 'RB', 'DL']
44
+ hash = {}
45
+ attributes.each_with_index do |params, index_of_keys|
46
+ params.each_with_index do |value, index_of_value|
47
+ hash.merge!(:"#{keys[index_of_keys]}#{index_of_value + 1}" => value)
48
+ end if params
49
+ end
50
+ hash
51
+ end
52
+
53
+ def generate_params(overwrite_params = {})
54
+ result = {}
55
+ result[:AT] = overwrite_params[:api_type]
56
+ result[:MK] = meeting_key
57
+ result[:BU] = back_url
58
+
59
+ if result[:AT] == 'RM'
60
+ result[:FN] = first_name
61
+ result[:LN] = last_name
62
+ result[:EM] = email_address
63
+ result[:JT] = job_title
64
+ result[:CY] = computer_name
65
+ result[:E1] = address_1
66
+ result[:E2] = address_2
67
+ result[:CT] = city
68
+ result[:SA] = state
69
+ result[:ZP] = zip_code
70
+ result[:CI] = country
71
+ result[:PH] = phone_number
72
+ result[:FX] = fax
73
+ result.merge!(name_and_value_params) if name_and_values
74
+ result.merge!(tc_params)
75
+ end
76
+ result.delete_if { |k, v| v.nil? }
77
+ end
78
+
79
+ def attribute_length!(length, attribute)
80
+ raise LengthError, %Q{option "#{attribute}" is too long.} if attribute.size > length
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,65 @@
1
+ module Webex
2
+ module Meeting
3
+ # comment
4
+ class Report
5
+ include Webex
6
+ attr_accessor :recording_topic, :specify_url, :agenda, :registration,
7
+ :destination_address_after_session, :description, :email_address,
8
+ :duration_hours, :duration_minutes, :month, :year, :presenter,
9
+ :file_access_password, :file_size, :recording_type, :view_download,
10
+ :back_url, :day
11
+ # phones = {PhoneCountry: nil, PhoneArea: nil, PhoneNumber: nil, PhoneExt: nil}
12
+
13
+ def initialize(attributes = {})
14
+ attributes.each { |k, v| send("#{k}=", v) }
15
+ env_attributes!
16
+ option_required! :back_url
17
+ end
18
+
19
+ def create
20
+ option_required! :recording_topic
21
+ { params: generate_params(api_type: 'CR'),
22
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
23
+ end
24
+
25
+ private
26
+
27
+ def cancel_mail?
28
+ cancel_mail
29
+ end
30
+
31
+ def phone_params
32
+ result = {}
33
+ result[:PC] = phones[:PhoneCountry]
34
+ result[:PA] = phones[:PhoneArea]
35
+ result[:PN] = phones[:PhoneNumber]
36
+ result[:PE] = phones[:PhoneExt]
37
+ result
38
+ end
39
+
40
+ def generate_params(overwrite_params = {})
41
+ result = {}
42
+ result[:AT] = overwrite_params[:api_type]
43
+ result[:RT] = recording_topic
44
+ result[:UL] = specify_url
45
+ result[:AG] = agenda
46
+ result[:AR] = registration
47
+ result[:DstURL] = destination_address_after_session
48
+ result[:DS] = description
49
+ result[:EM] = email_address
50
+ result[:HR] = duration_hours
51
+ result[:MI] = duration_minutes
52
+ result[:MH] = month
53
+ result[:DY] = day
54
+ result[:YR] = year
55
+ result[:PT] = presenter
56
+ result[:PW] = file_access_password
57
+ result[:SZ] = file_size
58
+ result[:TP] = recording_type
59
+ result[:VD] = view_download
60
+ result[:BU] = back_url
61
+ result.delete_if { |k, v| v.nil? }
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,153 @@
1
+ module Webex
2
+ module Meeting
3
+ # comment
4
+ class Schedule
5
+ include Webex
6
+ attr_accessor :meeting_name, :meeting_type, :list_flag, :meeting_password, :password_filter_feature,
7
+ :require_attendee_registration, :automatically_accept_registration, :attendee_information,
8
+ :registration_password, :maxinum_registrations_allowed, :registration_close_year, :registration_close_month,
9
+ :registration_close_date, :teleconference_configuration, :internet_phone, :tele_lines, :other_teleconferencing_description,
10
+ :exclude_PW, :request_login, :tsp_account, :if_auto_play_presentation, :if_attendee_join_before_host,
11
+ :how_many_minutes_before_event_starts, :if_note_taker, :note_taker_option, :time_zone,
12
+ :duration, :number_of_attendees, :number_of_presenters, :tracking_codes,
13
+ :year, :month, :date, :hour, :minute, :number_of_sessions, :until_year,
14
+ :until_month, :until_day, :recurrence_type, :repeat_days, :always_repeat,
15
+ :reminder_email, :meeting_email, :if_send_reminder_email, :time, :mobile_device_number,
16
+ :charge_mode, :whole_information, :credit_card_type, :first_name, :last_name,
17
+ :credit_card_number, :credit_card_expiration_month, :credit_card_expiration_year,
18
+ :email_address, :company, :street, :city, :state, :zip_code, :country_code,
19
+ :phone_number, :future_use, :first_four_digits, :last_four_digits,
20
+ :agenda, :attendee_features, :meeting_features, :description, :meeting_description,
21
+ :display_message, :meeting_greeting, :if_request_attendee_to_check_rich_media_plays,
22
+ :if_send_a_confirmation_email_to_the_host, :auto_delete_after_after_end,
23
+ :callout_phone_number, :host_web_ex_id, :if_user_hands_on_lab,
24
+ :lab_name, :number_of_computers, :invitation_email, :back_url, :document_location,
25
+ :auto_start_feature, :app_location, :windows_app_handle, :url, :app_parameter
26
+
27
+ def initialize(attributes = {})
28
+ attributes.each { |k, v| send("#{k}=", v) }
29
+ env_attributes!
30
+ option_required! :back_url
31
+ end
32
+
33
+ def edit
34
+ { params: generate_params(api_type: 'EM'),
35
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
36
+ end
37
+
38
+ def schedule
39
+ { params: generate_params(api_type: 'SM'),
40
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
41
+ end
42
+
43
+ def impromptu
44
+ { params: generate_params(api_type: 'IM'),
45
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
46
+ end
47
+
48
+
49
+ private
50
+
51
+ def generate_params(overwrite_params = {})
52
+ result = {}
53
+ result[:AT] = overwrite_params[:api_type]
54
+ result[:BU] = back_url
55
+ result[:MN] = meeting_name
56
+ result[:MT] = meeting_type
57
+ result[:LF] = list_flag
58
+ result[:PW] = meeting_password
59
+ result[:PR] = password_filter_feature
60
+ result[:AR] = require_attendee_registration
61
+ result[:AQ] = automatically_accept_registration
62
+ result[:AI] = attendee_information
63
+ result[:RPW] = registration_password # TC
64
+ result[:NR] = maxinum_registrations_allowed # TC
65
+ result[:RCY] = registration_close_year # TC
66
+ result[:RCM] = registration_close_month # TC
67
+ result[:RCD] = registration_close_date # TC
68
+ result[:TC] = teleconference_configuration
69
+ result[:IP] = internet_phone
70
+ result[:TL] = tele_lines
71
+ result[:TD] = other_teleconferencing_description
72
+ result[:ExcludePW] = exclude_PW
73
+ result[:RequestALogin] = request_login
74
+ result[:TA] = tsp_account # MC 6.0
75
+ result[:APP] = if_auto_play_presentation # MC 6.0
76
+ result[:APPD] = document_location # MC 6.0
77
+ result[:AJ] = if_attendee_join_before_host # MC 6.0
78
+ result[:AJMI] = how_many_minutes_before_event_starts # MC 6.0
79
+ result[:NT] = if_note_taker # MC 6.0
80
+ result[:NTOP] = note_taker_option # MC 6.0
81
+ result[:TZ] = time_zone
82
+ result[:DU] = duration
83
+ result[:NA] = number_of_attendees
84
+ result[:NP] = number_of_presenters # TC
85
+ result.merge!(tracking_code_hash) if tracking_codes
86
+ result[:YE] = year
87
+ result[:MO] = month
88
+ result[:DA] = date
89
+ result[:HO] = hour
90
+ result[:MI] = minute
91
+ result[:NS] = number_of_sessions # TC
92
+ result[:UntilYE] = until_year
93
+ result[:UntilMO] = until_month
94
+ result[:UntilDA] = until_day
95
+ result[:TY] = recurrence_type # TC
96
+ result[:RO] = recurrence_type # MC
97
+ result[:Days] = repeat_days
98
+ result[:Always] = always_repeat # MC
99
+ result[:Email] = reminder_email
100
+ result[:ME] = meeting_email # MC
101
+ result[:BM] = if_send_reminder_email # MC
102
+ result[:ReminderTime] = time
103
+ result[:MobileDN] = mobile_device_number # MC
104
+ result[:CM] = charge_mode
105
+ result[:WI] = whole_information
106
+ result[:CT] = credit_card_type
107
+ result[:FN] = first_name
108
+ result[:LN] = last_name # MC
109
+ result[:LA] = last_name # TC
110
+ result[:CN] = credit_card_number
111
+ result[:EM] = credit_card_expiration_month
112
+ result[:EY] = credit_card_expiration_year
113
+ result[:ML] = email_address
114
+ result[:CP] = company
115
+ result[:SR] = street
116
+ result[:CI] = city
117
+ result[:ST] = state
118
+ result[:ZP] = zip_code
119
+ result[:CY] = country_code
120
+ result[:PO] = phone_number
121
+ result[:LU] = future_use
122
+ result[:F4] = first_four_digits
123
+ result[:L4] = last_four_digits
124
+ result[:AG] = agenda
125
+ result[:AF] = attendee_features
126
+ result[:MF] = meeting_features
127
+ result[:DS] = description # TC
128
+ result[:MD] = meeting_description # MC
129
+ result[:PM] = display_message
130
+ result[:MG] = meeting_greeting
131
+ result[:TA] = tsp_account # TC
132
+ result[:QK] = if_request_attendee_to_check_rich_media_plays # MC
133
+ result[:CE] = if_send_a_confirmation_email_to_the_host # MC
134
+ result[:AutoDeleteAfterEnd] = auto_delete_after_after_end # MC
135
+ result[:CO] = callout_phone_number
136
+ result[:HI] = host_web_ex_id
137
+ result[:HL] = if_user_hands_on_lab # TC
138
+ result[:LN] = lab_name # TC
139
+ result[:NC] = number_of_computers # TC
140
+ result[:VE] = invitation_email
141
+ if result[:AT] == 'IM'
142
+ result[:AS] = auto_start_feature
143
+ result[:DL] = document_location
144
+ result[:AL] = app_location
145
+ result[:AH] = windows_app_handle
146
+ result[:WL] = url
147
+ result[:AP] = app_parameter
148
+ end
149
+ result.delete_if { |k, v| v.nil? }
150
+ end
151
+ end
152
+ end
153
+ end
@@ -0,0 +1,12 @@
1
+ require 'webex/user/partner'
2
+ require 'webex/user/registration'
3
+ require 'webex/user/activation'
4
+ require 'webex/user/file'
5
+ require 'webex/user/report'
6
+
7
+ module Webex
8
+ # comment
9
+ module User
10
+ PATH_URL = 'p.php'.freeze
11
+ end
12
+ end
@@ -0,0 +1,36 @@
1
+ module Webex
2
+ module User
3
+ # comment
4
+ class Activation
5
+ include Webex
6
+ attr_accessor :webex_id, :partner_id, :back_url
7
+
8
+ def initialize(attributes = {})
9
+ attributes.each { |k, v| send("#{k}=", v) }
10
+ env_attributes!
11
+ option_required! :webex_id, :partner_id, :back_url
12
+ end
13
+
14
+ def activate
15
+ { params: generate_params(api_type: 'AC'),
16
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
17
+ end
18
+
19
+ def deactivate
20
+ { params: generate_params(api_type: 'IN'),
21
+ url: URI.join(CONFIGURATION.host_url + PATH_URL) }
22
+ end
23
+
24
+ private
25
+
26
+ def generate_params(overwrite_params = {})
27
+ result = {}
28
+ result[:AT] = overwrite_params[:api_type]
29
+ result[:WID] = webex_id
30
+ result[:PID] = partner_id
31
+ result[:BU] = back_url
32
+ result.delete_if { |k, v| v.nil? }
33
+ end
34
+ end
35
+ end
36
+ end