webex 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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