webex 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -0,0 +1,3 @@
1
+ module Webex
2
+ VERSION = "0.0.1"
3
+ end
@@ -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: