amazon-chime-sdk-rails 1.0.0 → 1.1.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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +57 -0
  3. data/.gitignore +7 -1
  4. data/CHANGELOG.md +31 -0
  5. data/Dockerfile +15 -0
  6. data/Gemfile +5 -3
  7. data/README.md +132 -1005
  8. data/config/spring.rb +2 -0
  9. data/docs/Develop_Rails_API_Application.md +569 -0
  10. data/docs/Develop_Rails_View_Application.md +441 -0
  11. data/gemfiles/Gemfile.rails-5.0 +1 -1
  12. data/gemfiles/Gemfile.rails-5.1 +0 -1
  13. data/gemfiles/Gemfile.rails-5.2 +0 -1
  14. data/gemfiles/Gemfile.rails-6.0 +0 -1
  15. data/gemfiles/Gemfile.rails-6.1 +24 -0
  16. data/gemfiles/Gemfile.rails-7.0 +25 -0
  17. data/lib/chime_sdk/controller/meetings.rb +3 -3
  18. data/lib/chime_sdk/version.rb +1 -1
  19. data/lib/generators/chime_sdk/js_generator.rb +72 -9
  20. data/lib/generators/templates/controllers/meetings_controller.rb +1 -1
  21. data/spec/generators/js_generator_spec.rb +66 -6
  22. data/spec/rails_app/app/assets/config/manifest.js +1 -0
  23. data/spec/rails_app/app/assets/javascripts/application.js +3 -0
  24. data/spec/rails_app/app/controllers/api/public/meeting_attendees_controller.rb +11 -0
  25. data/spec/rails_app/app/controllers/api/public/meetings_controller.rb +15 -0
  26. data/spec/rails_app/app/controllers/meetings_controller.rb +1 -1
  27. data/spec/rails_app/app/views/layouts/_header.html.erb +1 -5
  28. data/spec/rails_app/app/views/layouts/application.html.erb +1 -2
  29. data/spec/rails_app/app/views/meetings/show.html.erb +22 -2
  30. data/spec/rails_app/config/application.rb +11 -2
  31. data/spec/rails_app/config/initializers/devise_token_auth.rb +1 -1
  32. data/spec/rails_app/config/routes.rb +10 -3
  33. data/spec/rails_app/db/seeds.rb +1 -1
  34. data/spec/requests/meetings_spec.rb +1 -1
  35. data/templates/amazon-chime-sdk-policy.yml +49 -0
  36. metadata +20 -57
  37. data/.travis.yml +0 -47
  38. data/spec/rails_app/app/controllers/spa_controller.rb +0 -6
  39. data/spec/rails_app/app/javascript/App.vue +0 -50
  40. data/spec/rails_app/app/javascript/channels/consumer.js +0 -6
  41. data/spec/rails_app/app/javascript/channels/index.js +0 -5
  42. data/spec/rails_app/app/javascript/components/DeviseTokenAuth.vue +0 -84
  43. data/spec/rails_app/app/javascript/components/meetings/Index.vue +0 -100
  44. data/spec/rails_app/app/javascript/components/meetings/Meeting.vue +0 -178
  45. data/spec/rails_app/app/javascript/components/rooms/Index.vue +0 -53
  46. data/spec/rails_app/app/javascript/components/rooms/Show.vue +0 -91
  47. data/spec/rails_app/app/javascript/packs/application.js +0 -17
  48. data/spec/rails_app/app/javascript/packs/spa.js +0 -14
  49. data/spec/rails_app/app/javascript/router/index.js +0 -74
  50. data/spec/rails_app/app/javascript/store/index.js +0 -37
  51. data/spec/rails_app/app/views/spa/index.html.erb +0 -1
  52. data/spec/rails_app/babel.config.js +0 -72
  53. data/spec/rails_app/bin/webpack +0 -18
  54. data/spec/rails_app/bin/webpack-dev-server +0 -18
  55. data/spec/rails_app/config/webpack/development.js +0 -5
  56. data/spec/rails_app/config/webpack/environment.js +0 -7
  57. data/spec/rails_app/config/webpack/loaders/vue.js +0 -6
  58. data/spec/rails_app/config/webpack/production.js +0 -5
  59. data/spec/rails_app/config/webpack/test.js +0 -5
  60. data/spec/rails_app/config/webpacker.yml +0 -97
  61. data/spec/rails_app/package.json +0 -23
  62. data/spec/rails_app/postcss.config.js +0 -12
@@ -12,14 +12,74 @@ describe ChimeSdk::Generators::JsGenerator, type: :generator do
12
12
 
13
13
  describe 'generating files' do
14
14
  context 'when npm is installed' do
15
- before do
16
- run_generator
15
+ context 'without specified amazon-chime-sdk-js version' do
16
+ before do
17
+ run_generator
18
+ end
19
+
20
+ # This test takes a long time. Skip it by xdescribe if you are developing the gem.
21
+ describe 'app/assets/javascripts/amazon-chime-sdk.min.js' do
22
+ subject { file('app/assets/javascripts/amazon-chime-sdk.min.js') }
23
+ it { is_expected.to exist }
24
+ end
25
+ end
26
+
27
+ # https://www.npmjs.com/package/amazon-chime-sdk-js
28
+ context 'with 1.0.0 as specified amazon-chime-sdk-js version' do
29
+ before do
30
+ run_generator %w(1.0.0)
31
+ end
32
+
33
+ # This test takes a long time. Skip it by xdescribe if you are developing the gem.
34
+ describe 'app/assets/javascripts/amazon-chime-sdk.min.js' do
35
+ subject { file('app/assets/javascripts/amazon-chime-sdk.min.js') }
36
+ it { is_expected.to exist }
37
+ end
38
+ end
39
+
40
+ # https://www.npmjs.com/package/amazon-chime-sdk-js
41
+ context 'with 2.24.0 as specified amazon-chime-sdk-js version' do
42
+ before do
43
+ run_generator %w(2.24.0)
44
+ end
45
+
46
+ # This test takes a long time. Skip it by xdescribe if you are developing the gem.
47
+ describe 'app/assets/javascripts/amazon-chime-sdk.min.js' do
48
+ subject { file('app/assets/javascripts/amazon-chime-sdk.min.js') }
49
+ it { is_expected.to exist }
50
+ end
17
51
  end
18
52
 
19
- # This test takes a long time. Skip it by xdescribe if you are developing the gem.
20
- describe 'app/assets/javascripts/amazon-chime-sdk.min.js' do
21
- subject { file('app/assets/javascripts/amazon-chime-sdk.min.js') }
22
- it { is_expected.to exist }
53
+ # https://www.npmjs.com/package/amazon-chime-sdk-js
54
+ context 'with 0.9.0 as specified amazon-chime-sdk-js version' do
55
+ subject { -> { run_generator %w(0.9.0) } }
56
+ it { is_expected.to raise_error(SystemExit) }
57
+
58
+ describe 'app/assets/javascripts/amazon-chime-sdk.min.js' do
59
+ subject { file('app/assets/javascripts/amazon-chime-sdk.min.js') }
60
+ it { is_expected.not_to exist }
61
+ end
62
+ end
63
+
64
+ # https://www.npmjs.com/package/amazon-chime-sdk-js
65
+ context 'with 1.2.0 as specified amazon-chime-sdk-js version' do
66
+ subject { -> { run_generator %w(1.2.0) } }
67
+ it { is_expected.to raise_error(SystemExit) }
68
+
69
+ describe 'app/assets/javascripts/amazon-chime-sdk.min.js' do
70
+ subject { file('app/assets/javascripts/amazon-chime-sdk.min.js') }
71
+ it { is_expected.not_to exist }
72
+ end
73
+ end
74
+
75
+ context 'with hoge as specified amazon-chime-sdk-js version' do
76
+ subject { -> { run_generator %w(hoge) } }
77
+ it { is_expected.to raise_error(SystemExit) }
78
+
79
+ describe 'app/assets/javascripts/amazon-chime-sdk.min.js' do
80
+ subject { file('app/assets/javascripts/amazon-chime-sdk.min.js') }
81
+ it { is_expected.not_to exist }
82
+ end
23
83
  end
24
84
  end
25
85
  end
@@ -1,2 +1,3 @@
1
1
  //= link_tree ../images
2
+ //= link_directory ../javascripts .js
2
3
  //= link_directory ../stylesheets .css
@@ -0,0 +1,3 @@
1
+ //= require rails-ujs
2
+ //= require turbolinks
3
+ //= require_tree .
@@ -0,0 +1,11 @@
1
+ class Api::Public::MeetingAttendeesController < ApplicationController
2
+ include ChimeSdk::Controller::Attendees::Mixin
3
+
4
+ def application_attendee_metadata(attendee)
5
+ user_id = attendee[:Attendee][:ExternalUserId].split('-')[3]
6
+ {
7
+ "AttendeeType": "User",
8
+ "User": User.find_by_id(user_id)
9
+ }
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ class Api::Public::MeetingsController < ApplicationController
2
+ include ChimeSdk::Controller::Meetings::Mixin
3
+
4
+ def index
5
+ render json: { api: 'meetings', status: 'healthy' }
6
+ end
7
+
8
+ def application_meeting_metadata(meeting)
9
+ room_id = meeting[:Meeting][:ExternalMeetingId].split('-')[3]
10
+ {
11
+ "MeetingType": "PrivateRoom",
12
+ "PrivateRoom": Room.find_by_id(room_id)
13
+ }
14
+ end
15
+ end
@@ -134,7 +134,7 @@ class MeetingsController < ApplicationController
134
134
  def application_meeting_metadata(meeting)
135
135
  {
136
136
  "MeetingType": "PrivateRoom",
137
- "Room": @room
137
+ "PrivateRoom": @room
138
138
  }
139
139
  end
140
140
 
@@ -1,11 +1,7 @@
1
1
  <header>
2
2
  <div>
3
3
  <div>
4
- <%= link_to 'SPA with Rails API', "/spa/" %>
5
- <strong><%= link_to 'Rails App with Action View', root_path %></strong>
6
- </div>
7
- <div>
8
- <strong>Rails Application for Amazon Chime SDK Meeting (Rails App with Action View)</strong>
4
+ <strong>Rails Application for Amazon Chime SDK Meeting</strong>
9
5
  </div>
10
6
  <div>
11
7
  <% if user_signed_in? %>
@@ -5,8 +5,7 @@
5
5
  <%= csrf_meta_tags %>
6
6
 
7
7
  <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
8
- <%= yield(:javascript_pack_tag) %>
9
- <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
8
+ <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
10
9
  </head>
11
10
 
12
11
  <body>
@@ -4,6 +4,11 @@
4
4
 
5
5
  <p><%= link_to("Show Meetings", meeting_resources_path) %></p>
6
6
 
7
+ <% if ENV['REACT_MEETING_DEMO_URL'] %>
8
+ <p><input type="button" value="Open React Meeting Demo" onclick="openReactMeetingDemo()"></p>
9
+ <% end %>
10
+ <div id="react_meeting_demo_url" url="<%= ENV['REACT_MEETING_DEMO_URL'] %>"></div>
11
+
7
12
  <% if @meeting %>
8
13
  <strong>Meeting</strong>
9
14
  <p>
@@ -53,6 +58,13 @@
53
58
  return `${attendee.Attendee.ApplicationMetadata.User.name} (${attendee.Attendee.AttendeeId})`;
54
59
  }
55
60
 
61
+ // Open customized React Meeting Demo
62
+ // https://github.com/simukappu/amazon-chime-sdk/tree/main/apps/meeting
63
+ function openReactMeetingDemo() {
64
+ window.open(`${reactMeetingDemoUrl}?preparedApiEndpoint=${window.location.origin}/api/v1/public/meetings&preparedMeetingId=${meeting.Meeting.MeetingId}&preparedAttendeeId=${attendee.Attendee.AttendeeId}`, '_blank').focus();
65
+ }
66
+
67
+ const reactMeetingDemoUrl = document.getElementById('react_meeting_demo_url').getAttribute('url');
56
68
  const meeting = JSON.parse(document.getElementById('meeting').getAttribute('meeting-data'));
57
69
  const attendee = JSON.parse(document.getElementById('attendee').getAttribute('attendee-data'));
58
70
  const attendeeResourcesPath = document.getElementById('attendee-resources-path').getAttribute('attendee-resources-path-data');
@@ -75,9 +87,17 @@
75
87
  await meetingSession.audioVideo.chooseAudioOutputDevice(audioOutputDevices[0].deviceId);
76
88
  } catch (error) {
77
89
  // handle error - unable to acquire audio device perhaps due to permissions blocking
78
- console.log(error);
90
+ if (error instanceof PermissionDeniedError) {
91
+ console.error('Permission denied', error);
92
+ } else {
93
+ console.error(error);
94
+ }
95
+ }
96
+ try {
97
+ await meetingSession.audioVideo.bindAudioElement(audioOutputElement);
98
+ } catch (error) {
99
+ console.error('Failed to bind audio element', error);
79
100
  }
80
- meetingSession.audioVideo.bindAudioElement(audioOutputElement);
81
101
  meetingSession.audioVideo.start();
82
102
  document.getElementById("meeting-status").innerHTML = '<p>Meeting : Online <input type="button" value="Leave a meeting" onclick="leave()"></p><div id="audio-status"></div>';
83
103
  document.getElementById("audio-status").innerHTML = '<p>Audio : Active <input type="button" value="Mute" onclick="mute()"></p>';
@@ -14,8 +14,17 @@ module RailsApp
14
14
  end
15
15
 
16
16
  if Rails::VERSION::MAJOR >= 6
17
- # Allow requests to www.example.com for RSpec
18
- config.hosts << 'www.example.com'
17
+ config.hosts.clear
18
+ end
19
+
20
+ # Configure CORS for public API
21
+ if defined?(Rack::Cors)
22
+ config.middleware.insert_before 0, Rack::Cors do
23
+ allow do
24
+ origins '*'
25
+ resource '/api/v1/public/*', methods: [:get, :delete], headers: :any
26
+ end
27
+ end
19
28
  end
20
29
  end
21
30
  end
@@ -5,7 +5,7 @@ DeviseTokenAuth.setup do |config|
5
5
  # client is responsible for keeping track of the changing tokens. Change
6
6
  # this to false to prevent the Authorization header from changing after
7
7
  # each request.
8
- # config.change_headers_on_each_request = true
8
+ config.change_headers_on_each_request = false
9
9
 
10
10
  # By default, users will need to re-authenticate after 2 weeks. This setting
11
11
  # determines how long tokens will remain valid after they are issued.
@@ -1,5 +1,5 @@
1
1
  Rails.application.routes.draw do
2
- # Routes for App with Rails View
2
+ # Routes for Rails application with Action View
3
3
  root "rooms#index"
4
4
  devise_for :users
5
5
  resources :rooms do
@@ -9,16 +9,23 @@ Rails.application.routes.draw do
9
9
  end
10
10
  end
11
11
 
12
- # Routes for SPA with Rails API
13
- resources :spa, only: [:index]
12
+ # Routes for REST API with Rails API application
14
13
  namespace :api do
15
14
  scope :"v1" do
15
+ # Private API with authentication
16
16
  mount_devise_token_auth_for 'User', at: 'auth'
17
17
  resources :rooms, defaults: { format: :json }, only: [:index, :show] do
18
18
  resources :meetings, defaults: { format: :json }, only: [:index, :show, :create, :destroy] do
19
19
  resources :meeting_attendees, as: :attendees, path: :attendees, only: [:index, :show, :create, :destroy]
20
20
  end
21
21
  end
22
+
23
+ # Public API called from Amazon Chime SDK React Meeting Demo application
24
+ namespace :public do
25
+ resources :meetings, defaults: { format: :json, create_attendee_from_meeting: false }, only: [:index, :show, :destroy] do
26
+ resources :meeting_attendees, as: :attendees, path: :attendees, only: [:index, :show, :destroy]
27
+ end
28
+ end
22
29
  end
23
30
  end
24
31
  end
@@ -29,7 +29,7 @@ puts "* Reset sequences for primary keys"
29
29
  end
30
30
  puts "* Created #{User.count} user records"
31
31
 
32
- room = Room.create
32
+ room = Room.create(name: 'Private Room 1')
33
33
  puts "* Created #{Room.count} room records"
34
34
 
35
35
  ['Ichiro', 'Stephen'].each do |name|
@@ -140,7 +140,7 @@ describe ChimeSdk::Controller::Meetings, type: :request do
140
140
  end
141
141
 
142
142
  it "returns application metadata in the meeting" do
143
- expect(JSON.parse(response.body)["Meeting"]["ApplicationMetadata"]["Room"]["id"]).to eq(@room.id)
143
+ expect(JSON.parse(response.body)["Meeting"]["ApplicationMetadata"]["PrivateRoom"]["id"]).to eq(@room.id)
144
144
  end
145
145
 
146
146
  it "returns created attendee since ChimeSdk.config.create_attendee_from_meeting is enabled" do
@@ -0,0 +1,49 @@
1
+ Parameters:
2
+ App:
3
+ Type: String
4
+ Description: Your application's name.
5
+ Env:
6
+ Type: String
7
+ Description: The environment name for the service.
8
+ Name:
9
+ Type: String
10
+ Description: The name of the service.
11
+
12
+ Resources:
13
+ # https://docs.aws.amazon.com/chime-sdk/latest/dg/iam-users-roles.html
14
+ AmazonChimeSdkPolicy:
15
+ Type: AWS::IAM::ManagedPolicy
16
+ Properties:
17
+ PolicyDocument:
18
+ Version: 2012-10-17
19
+ Statement:
20
+ - Sid: AmazonChimeSdkActions
21
+ Effect: Allow
22
+ Action:
23
+ - chime:CreateMeeting
24
+ - chime:CreateMeetingWithAttendees
25
+ - chime:DeleteMeeting
26
+ - chime:GetMeeting
27
+ - chime:ListMeetings
28
+ - chime:CreateAttendee
29
+ - chime:BatchCreateAttendee
30
+ - chime:DeleteAttendee
31
+ - chime:GetAttendee
32
+ - chime:ListAttendees
33
+ - chime:ListAttendeeTags
34
+ - chime:ListMeetingTags
35
+ - chime:ListTagsForResource
36
+ - chime:TagAttendee
37
+ - chime:TagMeeting
38
+ - chime:TagResource
39
+ - chime:UntagAttendee
40
+ - chime:UntagMeeting
41
+ - chime:UntagResource
42
+ - chime:StartMeetingTranscription
43
+ - chime:StopMeetingTranscription
44
+ Resource: "*"
45
+
46
+ Outputs:
47
+ AmazonChimeSdkPolicyArn:
48
+ Description: "The ARN of the ManagedPolicy to attatch to the task role."
49
+ Value: !Ref AmazonChimeSdkPolicy
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amazon-chime-sdk-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shota Yamazaki
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-17 00:00:00.000000000 Z
11
+ date: 2023-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -117,20 +117,26 @@ executables: []
117
117
  extensions: []
118
118
  extra_rdoc_files: []
119
119
  files:
120
+ - ".github/workflows/build.yml"
120
121
  - ".gitignore"
121
122
  - ".rspec"
122
- - ".travis.yml"
123
123
  - ".yardopts"
124
124
  - CHANGELOG.md
125
+ - Dockerfile
125
126
  - Gemfile
126
127
  - LICENSE
127
128
  - README.md
128
129
  - Rakefile
129
130
  - amazon-chime-sdk-rails.gemspec
131
+ - config/spring.rb
132
+ - docs/Develop_Rails_API_Application.md
133
+ - docs/Develop_Rails_View_Application.md
130
134
  - gemfiles/Gemfile.rails-5.0
131
135
  - gemfiles/Gemfile.rails-5.1
132
136
  - gemfiles/Gemfile.rails-5.2
133
137
  - gemfiles/Gemfile.rails-6.0
138
+ - gemfiles/Gemfile.rails-6.1
139
+ - gemfiles/Gemfile.rails-7.0
134
140
  - lib/amazon-chime-sdk-rails.rb
135
141
  - lib/chime_sdk/config.rb
136
142
  - lib/chime_sdk/controller/attendees.rb
@@ -158,29 +164,19 @@ files:
158
164
  - spec/rails_app/app/assets/config/manifest.js
159
165
  - spec/rails_app/app/assets/images/.keep
160
166
  - spec/rails_app/app/assets/javascripts/.keep
167
+ - spec/rails_app/app/assets/javascripts/application.js
161
168
  - spec/rails_app/app/assets/stylesheets/application.css
162
169
  - spec/rails_app/app/assets/stylesheets/scaffolds.scss
163
170
  - spec/rails_app/app/controllers/api/meeting_attendees_controller.rb
164
171
  - spec/rails_app/app/controllers/api/meetings_controller.rb
172
+ - spec/rails_app/app/controllers/api/public/meeting_attendees_controller.rb
173
+ - spec/rails_app/app/controllers/api/public/meetings_controller.rb
165
174
  - spec/rails_app/app/controllers/api/rooms_controller.rb
166
175
  - spec/rails_app/app/controllers/application_controller.rb
167
176
  - spec/rails_app/app/controllers/entries_controller.rb
168
177
  - spec/rails_app/app/controllers/meeting_attendees_controller.rb
169
178
  - spec/rails_app/app/controllers/meetings_controller.rb
170
179
  - spec/rails_app/app/controllers/rooms_controller.rb
171
- - spec/rails_app/app/controllers/spa_controller.rb
172
- - spec/rails_app/app/javascript/App.vue
173
- - spec/rails_app/app/javascript/channels/consumer.js
174
- - spec/rails_app/app/javascript/channels/index.js
175
- - spec/rails_app/app/javascript/components/DeviseTokenAuth.vue
176
- - spec/rails_app/app/javascript/components/meetings/Index.vue
177
- - spec/rails_app/app/javascript/components/meetings/Meeting.vue
178
- - spec/rails_app/app/javascript/components/rooms/Index.vue
179
- - spec/rails_app/app/javascript/components/rooms/Show.vue
180
- - spec/rails_app/app/javascript/packs/application.js
181
- - spec/rails_app/app/javascript/packs/spa.js
182
- - spec/rails_app/app/javascript/router/index.js
183
- - spec/rails_app/app/javascript/store/index.js
184
180
  - spec/rails_app/app/models/application_record.rb
185
181
  - spec/rails_app/app/models/entry.rb
186
182
  - spec/rails_app/app/models/room.rb
@@ -198,15 +194,11 @@ files:
198
194
  - spec/rails_app/app/views/rooms/new.html.erb
199
195
  - spec/rails_app/app/views/rooms/show.html.erb
200
196
  - spec/rails_app/app/views/rooms/show.json.jbuilder
201
- - spec/rails_app/app/views/spa/index.html.erb
202
- - spec/rails_app/babel.config.js
203
197
  - spec/rails_app/bin/bundle
204
198
  - spec/rails_app/bin/rails
205
199
  - spec/rails_app/bin/rake
206
200
  - spec/rails_app/bin/setup
207
201
  - spec/rails_app/bin/spring
208
- - spec/rails_app/bin/webpack
209
- - spec/rails_app/bin/webpack-dev-server
210
202
  - spec/rails_app/bin/yarn
211
203
  - spec/rails_app/config.ru
212
204
  - spec/rails_app/config/application.rb
@@ -237,12 +229,6 @@ files:
237
229
  - spec/rails_app/config/secrets.yml
238
230
  - spec/rails_app/config/spring.rb
239
231
  - spec/rails_app/config/storage.yml
240
- - spec/rails_app/config/webpack/development.js
241
- - spec/rails_app/config/webpack/environment.js
242
- - spec/rails_app/config/webpack/loaders/vue.js
243
- - spec/rails_app/config/webpack/production.js
244
- - spec/rails_app/config/webpack/test.js
245
- - spec/rails_app/config/webpacker.yml
246
232
  - spec/rails_app/db/migrate/20200912140231_devise_create_users.rb
247
233
  - spec/rails_app/db/migrate/20200912140352_add_tokens_to_users.rb
248
234
  - spec/rails_app/db/migrate/20200912140657_create_rooms.rb
@@ -250,8 +236,6 @@ files:
250
236
  - spec/rails_app/db/schema.rb
251
237
  - spec/rails_app/db/seeds.rb
252
238
  - spec/rails_app/log/.keep
253
- - spec/rails_app/package.json
254
- - spec/rails_app/postcss.config.js
255
239
  - spec/rails_app/public/404.html
256
240
  - spec/rails_app/public/422.html
257
241
  - spec/rails_app/public/500.html
@@ -261,11 +245,12 @@ files:
261
245
  - spec/requests/atendees_spec.rb
262
246
  - spec/requests/meetings_spec.rb
263
247
  - spec/spec_helper.rb
248
+ - templates/amazon-chime-sdk-policy.yml
264
249
  homepage: https://github.com/simukappu/amazon-chime-sdk-rails
265
250
  licenses:
266
251
  - MIT
267
252
  metadata: {}
268
- post_install_message:
253
+ post_install_message:
269
254
  rdoc_options: []
270
255
  require_paths:
271
256
  - lib
@@ -280,8 +265,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
280
265
  - !ruby/object:Gem::Version
281
266
  version: '0'
282
267
  requirements: []
283
- rubygems_version: 3.1.2
284
- signing_key:
268
+ rubygems_version: 3.4.6
269
+ signing_key:
285
270
  specification_version: 4
286
271
  summary: Server-side implementation of Amazon Chime SDK for Ruby on Rails application
287
272
  test_files:
@@ -295,29 +280,19 @@ test_files:
295
280
  - spec/rails_app/app/assets/config/manifest.js
296
281
  - spec/rails_app/app/assets/images/.keep
297
282
  - spec/rails_app/app/assets/javascripts/.keep
283
+ - spec/rails_app/app/assets/javascripts/application.js
298
284
  - spec/rails_app/app/assets/stylesheets/application.css
299
285
  - spec/rails_app/app/assets/stylesheets/scaffolds.scss
300
286
  - spec/rails_app/app/controllers/api/meeting_attendees_controller.rb
301
287
  - spec/rails_app/app/controllers/api/meetings_controller.rb
288
+ - spec/rails_app/app/controllers/api/public/meeting_attendees_controller.rb
289
+ - spec/rails_app/app/controllers/api/public/meetings_controller.rb
302
290
  - spec/rails_app/app/controllers/api/rooms_controller.rb
303
291
  - spec/rails_app/app/controllers/application_controller.rb
304
292
  - spec/rails_app/app/controllers/entries_controller.rb
305
293
  - spec/rails_app/app/controllers/meeting_attendees_controller.rb
306
294
  - spec/rails_app/app/controllers/meetings_controller.rb
307
295
  - spec/rails_app/app/controllers/rooms_controller.rb
308
- - spec/rails_app/app/controllers/spa_controller.rb
309
- - spec/rails_app/app/javascript/App.vue
310
- - spec/rails_app/app/javascript/channels/consumer.js
311
- - spec/rails_app/app/javascript/channels/index.js
312
- - spec/rails_app/app/javascript/components/DeviseTokenAuth.vue
313
- - spec/rails_app/app/javascript/components/meetings/Index.vue
314
- - spec/rails_app/app/javascript/components/meetings/Meeting.vue
315
- - spec/rails_app/app/javascript/components/rooms/Index.vue
316
- - spec/rails_app/app/javascript/components/rooms/Show.vue
317
- - spec/rails_app/app/javascript/packs/application.js
318
- - spec/rails_app/app/javascript/packs/spa.js
319
- - spec/rails_app/app/javascript/router/index.js
320
- - spec/rails_app/app/javascript/store/index.js
321
296
  - spec/rails_app/app/models/application_record.rb
322
297
  - spec/rails_app/app/models/entry.rb
323
298
  - spec/rails_app/app/models/room.rb
@@ -335,15 +310,11 @@ test_files:
335
310
  - spec/rails_app/app/views/rooms/new.html.erb
336
311
  - spec/rails_app/app/views/rooms/show.html.erb
337
312
  - spec/rails_app/app/views/rooms/show.json.jbuilder
338
- - spec/rails_app/app/views/spa/index.html.erb
339
- - spec/rails_app/babel.config.js
340
313
  - spec/rails_app/bin/bundle
341
314
  - spec/rails_app/bin/rails
342
315
  - spec/rails_app/bin/rake
343
316
  - spec/rails_app/bin/setup
344
317
  - spec/rails_app/bin/spring
345
- - spec/rails_app/bin/webpack
346
- - spec/rails_app/bin/webpack-dev-server
347
318
  - spec/rails_app/bin/yarn
348
319
  - spec/rails_app/config.ru
349
320
  - spec/rails_app/config/application.rb
@@ -374,12 +345,6 @@ test_files:
374
345
  - spec/rails_app/config/secrets.yml
375
346
  - spec/rails_app/config/spring.rb
376
347
  - spec/rails_app/config/storage.yml
377
- - spec/rails_app/config/webpack/development.js
378
- - spec/rails_app/config/webpack/environment.js
379
- - spec/rails_app/config/webpack/loaders/vue.js
380
- - spec/rails_app/config/webpack/production.js
381
- - spec/rails_app/config/webpack/test.js
382
- - spec/rails_app/config/webpacker.yml
383
348
  - spec/rails_app/db/migrate/20200912140231_devise_create_users.rb
384
349
  - spec/rails_app/db/migrate/20200912140352_add_tokens_to_users.rb
385
350
  - spec/rails_app/db/migrate/20200912140657_create_rooms.rb
@@ -387,8 +352,6 @@ test_files:
387
352
  - spec/rails_app/db/schema.rb
388
353
  - spec/rails_app/db/seeds.rb
389
354
  - spec/rails_app/log/.keep
390
- - spec/rails_app/package.json
391
- - spec/rails_app/postcss.config.js
392
355
  - spec/rails_app/public/404.html
393
356
  - spec/rails_app/public/422.html
394
357
  - spec/rails_app/public/500.html
data/.travis.yml DELETED
@@ -1,47 +0,0 @@
1
- language: ruby
2
-
3
- branches:
4
- except:
5
- - images
6
-
7
- rvm:
8
- # - 2.7.2
9
- - 2.6.6
10
-
11
- gemfile:
12
- - gemfiles/Gemfile.rails-5.0
13
- - gemfiles/Gemfile.rails-5.1
14
- - gemfiles/Gemfile.rails-5.2
15
- - gemfiles/Gemfile.rails-6.0
16
-
17
- matrix:
18
- include:
19
- - rvm: ruby-head
20
- gemfile: Gemfile
21
- allow_failures:
22
- - rvm: ruby-head
23
- fast_finish: true
24
-
25
- sudo: false
26
-
27
- cache: bundler
28
-
29
- before_install:
30
- - gem install bundler
31
- - nvm install node
32
-
33
- install:
34
- - bundle install
35
-
36
- before_script:
37
- - cd spec/rails_app
38
- - yarn --check-files
39
- - bundle exec rails webpacker:compile
40
- - bundle exec rails g chime_sdk:js
41
- - cd -
42
-
43
- script:
44
- - bundle exec rspec
45
-
46
- notifications:
47
- email: true
@@ -1,6 +0,0 @@
1
- class SpaController < ApplicationController
2
-
3
- # GET /spa
4
- def index
5
- end
6
- end
@@ -1,50 +0,0 @@
1
- <template>
2
- <div>
3
- <div>
4
- <strong><router-link v-bind:to="{ name: 'Root' }">SPA with Rails API</router-link></strong>
5
- <a href="/">Rails App with Action View</a>
6
- </div>
7
- <div>
8
- <strong>Rails Application for Amazon Chime SDK Meeting (SPA with Rails API)</strong>
9
- </div>
10
- <div>
11
- <div v-if="userSignedIn">
12
- {{ currentUser.name }}
13
- <router-link v-bind:to="{ name: 'SignOut' }">Logout</router-link>
14
- </div>
15
- <div v-else>
16
- <router-link v-bind:to="{ name: 'SignIn' }">Login</router-link>
17
- </div>
18
- </div>
19
- <router-view />
20
- </div>
21
- </template>
22
-
23
- <script>
24
- import Vue from 'vue'
25
- import axios from 'axios'
26
-
27
- axios.defaults.baseURL = "/api/v1"
28
-
29
- export default {
30
- name: 'App',
31
- computed: {
32
- userSignedIn: function () {
33
- return this.$store.getters.userSignedIn;
34
- },
35
- currentUser: function () {
36
- return this.$store.getters.currentUser;
37
- }
38
- },
39
- created () {
40
- if (this.$store.getters.userSignedIn) {
41
- for (var authHeader of Object.keys(this.$store.getters.authHeaders)) {
42
- axios.defaults.headers.common[authHeader] = this.$store.getters.authHeaders[authHeader];
43
- }
44
- }
45
- }
46
- }
47
- </script>
48
-
49
- <style scoped>
50
- </style>
@@ -1,6 +0,0 @@
1
- // Action Cable provides the framework to deal with WebSockets in Rails.
2
- // You can generate new channels where WebSocket features live using the `rails generate channel` command.
3
-
4
- import { createConsumer } from "@rails/actioncable"
5
-
6
- export default createConsumer()
@@ -1,5 +0,0 @@
1
- // Load all the channels within this directory and all subdirectories.
2
- // Channel files must be named *_channel.js.
3
-
4
- const channels = require.context('.', true, /_channel\.js$/)
5
- channels.keys().forEach(channels)