webex 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +3 -0
- data/Gemfile +4 -0
- data/README.md +39 -0
- data/Rakefile +1 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/example/server.rb +31 -0
- data/example/views/back_page.erb +118 -0
- data/example/views/user/partner/login.erb +16 -0
- data/example/views/user/partner/logout.erb +16 -0
- data/example/views/user/registration/edit.erb +16 -0
- data/example/views/user/registration/sign_up.erb +16 -0
- data/lib/webex.rb +23 -0
- data/lib/webex/configuration.rb +14 -0
- data/lib/webex/error/errors.rb +13 -0
- data/lib/webex/meeting.rb +13 -0
- data/lib/webex/meeting/action.rb +97 -0
- data/lib/webex/meeting/attendee.rb +65 -0
- data/lib/webex/meeting/presenter.rb +58 -0
- data/lib/webex/meeting/registration.rb +84 -0
- data/lib/webex/meeting/report.rb +65 -0
- data/lib/webex/meeting/schedule.rb +153 -0
- data/lib/webex/user.rb +12 -0
- data/lib/webex/user/activation.rb +36 -0
- data/lib/webex/user/file.rb +38 -0
- data/lib/webex/user/partner.rb +46 -0
- data/lib/webex/user/registration.rb +133 -0
- data/lib/webex/user/report.rb +38 -0
- data/lib/webex/version.rb +3 -0
- data/webex.gemspec +34 -0
- metadata +133 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
module Webex
|
2
|
+
module User
|
3
|
+
# comment
|
4
|
+
class File
|
5
|
+
include Webex
|
6
|
+
attr_accessor :file_name, :back_url, :current_directory
|
7
|
+
|
8
|
+
def initialize(attributes = {})
|
9
|
+
attributes.each { |k, v| send("#{k}=", v) }
|
10
|
+
env_attributes!
|
11
|
+
option_required! :back_url
|
12
|
+
end
|
13
|
+
|
14
|
+
def download
|
15
|
+
option_required! :file_name
|
16
|
+
{ params: generate_params(api_type: 'DF'),
|
17
|
+
url: URI.join(CONFIGURATION.host_url + PATH_URL) }
|
18
|
+
end
|
19
|
+
|
20
|
+
def list
|
21
|
+
{ params: generate_params(api_type: 'LF'),
|
22
|
+
url: URI.join(CONFIGURATION.host_url + PATH_URL) }
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def generate_params(overwrite_params = {})
|
28
|
+
result = {}
|
29
|
+
result[:AT] = overwrite_params[:api_type]
|
30
|
+
result[:BU] = back_url
|
31
|
+
result[:FN] = file_name if result[:AT] == 'DF'
|
32
|
+
result[:CD] = current_directory if result[:AT] == 'LF'
|
33
|
+
|
34
|
+
result.delete_if { |k, v| v.nil? }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Webex
|
2
|
+
module User
|
3
|
+
# comment
|
4
|
+
class Partner
|
5
|
+
include Webex
|
6
|
+
attr_accessor :webex_id, :ticket, :password, :back_type, :back_url, :email,
|
7
|
+
:session, :first_name, :last_name, :new_password
|
8
|
+
def initialize(attributes = {})
|
9
|
+
attributes.each { |k, v| send("#{k}=", v) }
|
10
|
+
env_attributes!
|
11
|
+
option_required! :webex_id, :back_type, :back_url
|
12
|
+
end
|
13
|
+
|
14
|
+
def login
|
15
|
+
{ params: generate_params(api_type: 'LI'),
|
16
|
+
url: URI.join(CONFIGURATION.host_url + PATH_URL) }
|
17
|
+
end
|
18
|
+
|
19
|
+
def logout
|
20
|
+
{ params: generate_params(api_type: 'LO'),
|
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[:MU] = back_type
|
31
|
+
result[:BU] = back_url
|
32
|
+
|
33
|
+
if result[:AT] == 'LI'
|
34
|
+
result[:TK] = ticket
|
35
|
+
result[:PW] = password
|
36
|
+
result[:EM] = email
|
37
|
+
result[:SK] = session
|
38
|
+
result[:FN] = first_name
|
39
|
+
result[:LN] = last_name
|
40
|
+
result[:NPW] = new_password
|
41
|
+
end
|
42
|
+
result.delete_if { |k, v| v.nil? }
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,133 @@
|
|
1
|
+
module Webex
|
2
|
+
module User
|
3
|
+
# comment
|
4
|
+
class Registration
|
5
|
+
include Webex
|
6
|
+
attr_accessor :webex_id, :first_name, :last_name, :email, :password, :partner_id, :back_url,
|
7
|
+
# optional attributes
|
8
|
+
:address_1, :address_2, :city, :state, :zip_code, :country, :office_phones, :fax_phones,
|
9
|
+
:computer, :storage, :admin, :web_ex_type, :partner_link, :portal, :meeting_type,
|
10
|
+
:supports, :tracking_codes, :time_zone, :one_click, :password_change, :tsp_bridges,
|
11
|
+
:new_webex_id, :new_password
|
12
|
+
|
13
|
+
# office_phones = {OPhoneCountry: nil, OPhoneArea: nil, OPhoneLocal: nil, OPhoneExt: nil}
|
14
|
+
# fax_phones = {FPhoneCountry: nil, FPhoneArea: nil, FPhoneLocal: nil, FPhoneExt: nil}
|
15
|
+
# supports = { SupportRecordingEdit: nil, SupportFileFolder: nil, SupportMyContacts: nil,
|
16
|
+
# SupportMyProfile: nil, SupportMyMeetings: nil, SupportEndUserReport: nil,
|
17
|
+
# SupportAccessAnywhere: nil, SupportMyRecordings: nil, SupportEventDocuments: nil,
|
18
|
+
# SupportPersonalLobby: nil}
|
19
|
+
# tracking_codes = [nil, nil, nil]
|
20
|
+
# tsp_bridges: [{CreateAccount: nil, TollFreeCallIn: nil, TollCallIn1: nil, ParticipantAccessCode: nil, SubscribeAccessCode: nil},
|
21
|
+
# {CreateAccount: nil, TollFreeCallIn: nil, TollCallIn1: nil, ParticipantAccessCode: nil, SubscribeAccessCode: nil},
|
22
|
+
# {CreateAccount: nil, TollFreeCallIn: nil, TollCallIn1: nil, ParticipantAccessCode: nil, SubscribeAccessCode: nil}]
|
23
|
+
def initialize(attributes = {})
|
24
|
+
attributes.each { |k, v| send("#{k}=", v) }
|
25
|
+
env_attributes!
|
26
|
+
option_required! :webex_id, :password, :partner_id
|
27
|
+
end
|
28
|
+
|
29
|
+
def sign_up(condition={})
|
30
|
+
option_required! :webex_id, :first_name, :last_name, :email, :password, :partner_id
|
31
|
+
{ params: generate_params(api_type: 'SU'),
|
32
|
+
url: URI.join(CONFIGURATION.host_url + PATH_URL) }
|
33
|
+
end
|
34
|
+
|
35
|
+
def edit(condition={})
|
36
|
+
option_required! :webex_id, :password, :partner_id
|
37
|
+
{ params: generate_params(api_type: 'EU'),
|
38
|
+
url: URI.join(CONFIGURATION.host_url + PATH_URL) }
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def tracking_code_hash
|
44
|
+
attribute_length!(10, tracking_codes)
|
45
|
+
hash = {}
|
46
|
+
tracking_codes.each_with_index do |code, index|
|
47
|
+
hash.merge!("TC#{index + 1}".to_sym => code)
|
48
|
+
end
|
49
|
+
hash
|
50
|
+
end
|
51
|
+
|
52
|
+
def supports_hash
|
53
|
+
hash = {}
|
54
|
+
hash[:RP] = supports[:SupportRecordingEdit]
|
55
|
+
hash[:FL] = supports[:SupportFileFolder]
|
56
|
+
hash[:AB] = supports[:SupportMyContacts]
|
57
|
+
hash[:PF] = supports[:SupportMyProfile]
|
58
|
+
hash[:MM] = supports[:SupportMyMeetings]
|
59
|
+
hash[:MR] = supports[:SupportEndUserReport]
|
60
|
+
hash[:AA] = supports[:SupportAccessAnywhere]
|
61
|
+
hash[:RC] = supports[:SupportMyRecordings]
|
62
|
+
hash[:RE] = supports[:SupportEventDocuments]
|
63
|
+
hash[:LB] = supports[:SupportPersonalLobby]
|
64
|
+
hash
|
65
|
+
end
|
66
|
+
|
67
|
+
def tsp_bridges_hash
|
68
|
+
attribute_length!(3, tsp_bridges)
|
69
|
+
index_table = { CreateAccount: :CB, TollFreeCallIn: :FI, TollCallIn1: :TI, ParticipantAccessCode: :PA, SubscribeAccessCode: :SA }
|
70
|
+
hash = {}
|
71
|
+
tsp_bridges.each_with_index do |bridge, index|
|
72
|
+
bridge.each do |key, value|
|
73
|
+
hash.merge!(:"#{index_table[key]}#{index + 1}" => value)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
hash
|
77
|
+
end
|
78
|
+
|
79
|
+
def merge_hash!(overwrite_params)
|
80
|
+
overwrite_params.merge!(office_phones) if office_phones
|
81
|
+
overwrite_params.merge!(fax_phones) if fax_phones
|
82
|
+
overwrite_params.merge!(supports_hash) if supports
|
83
|
+
overwrite_params.merge!(tracking_code_hash) if tracking_codes
|
84
|
+
overwrite_params.merge!(tsp_bridges_hash) if overwrite_params[:AT] == 'EU' && tsp_bridges
|
85
|
+
overwrite_params.delete_if { |k, v| v.nil? }
|
86
|
+
end
|
87
|
+
|
88
|
+
def generate_params(overwrite_params = {})
|
89
|
+
result = {}
|
90
|
+
result[:AT] = overwrite_params[:api_type]
|
91
|
+
result[:PW] = password
|
92
|
+
result[:PID] = partner_id
|
93
|
+
result[:WID] = webex_id
|
94
|
+
result[:Address1] = address_1
|
95
|
+
result[:Address2] = address_2
|
96
|
+
result[:City] = city
|
97
|
+
result[:State] = state
|
98
|
+
result[:ZipCode] = zip_code
|
99
|
+
result[:Country] = country
|
100
|
+
result[:AC] = computer
|
101
|
+
result[:AS] = storage
|
102
|
+
result[:LA] = admin
|
103
|
+
result[:MW] = web_ex_type
|
104
|
+
result[:PL] = partner_link
|
105
|
+
result[:PT] = portal
|
106
|
+
result[:MT] = meeting_type
|
107
|
+
result[:TimeZone] = time_zone
|
108
|
+
result[:BU] = back_url
|
109
|
+
result[:OC] = one_click
|
110
|
+
|
111
|
+
if result[:AT] == 'SU'
|
112
|
+
result[:FN] = first_name
|
113
|
+
result[:LN] = last_name
|
114
|
+
result[:EM] = email
|
115
|
+
result[:ForceChangeUserPwd] = password_change
|
116
|
+
end
|
117
|
+
|
118
|
+
if result[:AT] == 'EU'
|
119
|
+
result[:NFN] = first_name
|
120
|
+
result[:NLN] = last_name
|
121
|
+
result[:NEM] = email
|
122
|
+
result[:NPW] = new_password
|
123
|
+
result[:NWID] = new_webex_id
|
124
|
+
end
|
125
|
+
merge_hash!(result)
|
126
|
+
end
|
127
|
+
|
128
|
+
def attribute_length!(length, attribute)
|
129
|
+
raise LengthError, %Q{option "#{attribute}" is too long.} if attribute.size > length
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Webex
|
2
|
+
module User
|
3
|
+
# comment
|
4
|
+
class Report
|
5
|
+
include Webex
|
6
|
+
attr_accessor :report_type, :back_url, :start_month, :start_year, :start_date,
|
7
|
+
:end_month, :end_year, :end_date, :topic, :sort_result_by
|
8
|
+
|
9
|
+
def initialize(attributes = {})
|
10
|
+
attributes.each { |k, v| send("#{k}=", v) }
|
11
|
+
env_attributes!
|
12
|
+
option_required! :report_type, :back_url
|
13
|
+
end
|
14
|
+
|
15
|
+
def display
|
16
|
+
{ params: generate_params(api_type: 'QR'),
|
17
|
+
url: URI.join(CONFIGURATION.host_url + PATH_URL) }
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def generate_params(overwrite_params = {})
|
23
|
+
result = {}
|
24
|
+
result[:AT] = overwrite_params[:api_type]
|
25
|
+
result[:BU] = back_url
|
26
|
+
result[:StartMO] = start_month
|
27
|
+
result[:StartYE] = start_year
|
28
|
+
result[:StartDA] = start_date
|
29
|
+
result[:EndMO] = end_month
|
30
|
+
result[:EndYE] = end_year
|
31
|
+
result[:EndDA] = end_date
|
32
|
+
result[:TC] = topic
|
33
|
+
result[:SB] = sort_result_by
|
34
|
+
result.delete_if { |k, v| v.nil? }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/webex.gemspec
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'webex/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "webex"
|
8
|
+
spec.version = Webex::VERSION
|
9
|
+
spec.authors = ["Wei-Yi Chiu"]
|
10
|
+
spec.email = ["bird1204@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{webex APIs}
|
13
|
+
spec.description = %q{webex APIs for rails, according to cisco webex}
|
14
|
+
spec.homepage = "https://github.com/bird1204"
|
15
|
+
spec.license = 'MIT'
|
16
|
+
|
17
|
+
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
18
|
+
# delete this section to allow pushing this gem to any host.
|
19
|
+
# if spec.respond_to?(:metadata)
|
20
|
+
# spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
|
21
|
+
# else
|
22
|
+
# raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
23
|
+
# end
|
24
|
+
|
25
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
26
|
+
spec.bindir = "exe"
|
27
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
|
+
spec.require_paths = ["lib"]
|
29
|
+
|
30
|
+
spec.add_development_dependency "bundler", "~> 1.9"
|
31
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
32
|
+
spec.add_development_dependency 'rspec', '~> 0'
|
33
|
+
spec.add_development_dependency "sinatra", '~> 0'
|
34
|
+
end
|
metadata
ADDED
@@ -0,0 +1,133 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: webex
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Wei-Yi Chiu
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-10-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.9'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.9'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: sinatra
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: webex APIs for rails, according to cisco webex
|
70
|
+
email:
|
71
|
+
- bird1204@gmail.com
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- .gitignore
|
77
|
+
- .rspec
|
78
|
+
- .travis.yml
|
79
|
+
- Gemfile
|
80
|
+
- README.md
|
81
|
+
- Rakefile
|
82
|
+
- bin/console
|
83
|
+
- bin/setup
|
84
|
+
- example/server.rb
|
85
|
+
- example/views/back_page.erb
|
86
|
+
- example/views/user/partner/login.erb
|
87
|
+
- example/views/user/partner/logout.erb
|
88
|
+
- example/views/user/registration/edit.erb
|
89
|
+
- example/views/user/registration/sign_up.erb
|
90
|
+
- lib/webex.rb
|
91
|
+
- lib/webex/configuration.rb
|
92
|
+
- lib/webex/error/errors.rb
|
93
|
+
- lib/webex/meeting.rb
|
94
|
+
- lib/webex/meeting/action.rb
|
95
|
+
- lib/webex/meeting/attendee.rb
|
96
|
+
- lib/webex/meeting/presenter.rb
|
97
|
+
- lib/webex/meeting/registration.rb
|
98
|
+
- lib/webex/meeting/report.rb
|
99
|
+
- lib/webex/meeting/schedule.rb
|
100
|
+
- lib/webex/user.rb
|
101
|
+
- lib/webex/user/activation.rb
|
102
|
+
- lib/webex/user/file.rb
|
103
|
+
- lib/webex/user/partner.rb
|
104
|
+
- lib/webex/user/registration.rb
|
105
|
+
- lib/webex/user/report.rb
|
106
|
+
- lib/webex/version.rb
|
107
|
+
- webex.gemspec
|
108
|
+
homepage: https://github.com/bird1204
|
109
|
+
licenses:
|
110
|
+
- MIT
|
111
|
+
metadata: {}
|
112
|
+
post_install_message:
|
113
|
+
rdoc_options: []
|
114
|
+
require_paths:
|
115
|
+
- lib
|
116
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
requirements: []
|
127
|
+
rubyforge_project:
|
128
|
+
rubygems_version: 2.4.6
|
129
|
+
signing_key:
|
130
|
+
specification_version: 4
|
131
|
+
summary: webex APIs
|
132
|
+
test_files: []
|
133
|
+
has_rdoc:
|