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,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: