amazon-chime-sdk-rails 1.0.0 → 1.1.0

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +69 -0
  3. data/.gitignore +7 -1
  4. data/CHANGELOG.md +19 -0
  5. data/Dockerfile +15 -0
  6. data/Gemfile +5 -3
  7. data/README.md +132 -1005
  8. data/docs/Develop_Rails_API_Application.md +569 -0
  9. data/docs/Develop_Rails_View_Application.md +441 -0
  10. data/gemfiles/Gemfile.rails-5.0 +1 -1
  11. data/gemfiles/Gemfile.rails-5.1 +0 -1
  12. data/gemfiles/Gemfile.rails-5.2 +0 -1
  13. data/gemfiles/Gemfile.rails-6.0 +0 -1
  14. data/gemfiles/Gemfile.rails-6.1 +24 -0
  15. data/gemfiles/Gemfile.rails-7.0 +30 -0
  16. data/lib/chime_sdk/controller/meetings.rb +4 -3
  17. data/lib/chime_sdk/version.rb +1 -1
  18. data/lib/generators/chime_sdk/js_generator.rb +72 -9
  19. data/lib/generators/templates/controllers/meetings_controller.rb +1 -1
  20. data/spec/generators/js_generator_spec.rb +66 -6
  21. data/spec/rails_app/app/assets/config/manifest.js +1 -0
  22. data/spec/rails_app/app/assets/javascripts/application.js +3 -0
  23. data/spec/rails_app/app/controllers/api/public/meeting_attendees_controller.rb +11 -0
  24. data/spec/rails_app/app/controllers/api/public/meetings_controller.rb +15 -0
  25. data/spec/rails_app/app/controllers/meetings_controller.rb +1 -1
  26. data/spec/rails_app/app/views/layouts/_header.html.erb +1 -5
  27. data/spec/rails_app/app/views/layouts/application.html.erb +1 -2
  28. data/spec/rails_app/app/views/meetings/show.html.erb +22 -2
  29. data/spec/rails_app/config/application.rb +11 -2
  30. data/spec/rails_app/config/initializers/devise_token_auth.rb +1 -1
  31. data/spec/rails_app/config/routes.rb +10 -3
  32. data/spec/rails_app/db/seeds.rb +1 -1
  33. data/spec/requests/meetings_spec.rb +1 -1
  34. data/templates/amazon-chime-sdk-policy.yml +49 -0
  35. metadata +19 -57
  36. data/.travis.yml +0 -47
  37. data/spec/rails_app/app/controllers/spa_controller.rb +0 -6
  38. data/spec/rails_app/app/javascript/App.vue +0 -50
  39. data/spec/rails_app/app/javascript/channels/consumer.js +0 -6
  40. data/spec/rails_app/app/javascript/channels/index.js +0 -5
  41. data/spec/rails_app/app/javascript/components/DeviseTokenAuth.vue +0 -84
  42. data/spec/rails_app/app/javascript/components/meetings/Index.vue +0 -100
  43. data/spec/rails_app/app/javascript/components/meetings/Meeting.vue +0 -178
  44. data/spec/rails_app/app/javascript/components/rooms/Index.vue +0 -53
  45. data/spec/rails_app/app/javascript/components/rooms/Show.vue +0 -91
  46. data/spec/rails_app/app/javascript/packs/application.js +0 -17
  47. data/spec/rails_app/app/javascript/packs/spa.js +0 -14
  48. data/spec/rails_app/app/javascript/router/index.js +0 -74
  49. data/spec/rails_app/app/javascript/store/index.js +0 -37
  50. data/spec/rails_app/app/views/spa/index.html.erb +0 -1
  51. data/spec/rails_app/babel.config.js +0 -72
  52. data/spec/rails_app/bin/webpack +0 -18
  53. data/spec/rails_app/bin/webpack-dev-server +0 -18
  54. data/spec/rails_app/config/webpack/development.js +0 -5
  55. data/spec/rails_app/config/webpack/environment.js +0 -7
  56. data/spec/rails_app/config/webpack/loaders/vue.js +0 -6
  57. data/spec/rails_app/config/webpack/production.js +0 -5
  58. data/spec/rails_app/config/webpack/test.js +0 -5
  59. data/spec/rails_app/config/webpacker.yml +0 -97
  60. data/spec/rails_app/package.json +0 -23
  61. 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.0
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: 2022-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -117,20 +117,25 @@ 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
+ - docs/Develop_Rails_API_Application.md
132
+ - docs/Develop_Rails_View_Application.md
130
133
  - gemfiles/Gemfile.rails-5.0
131
134
  - gemfiles/Gemfile.rails-5.1
132
135
  - gemfiles/Gemfile.rails-5.2
133
136
  - gemfiles/Gemfile.rails-6.0
137
+ - gemfiles/Gemfile.rails-6.1
138
+ - gemfiles/Gemfile.rails-7.0
134
139
  - lib/amazon-chime-sdk-rails.rb
135
140
  - lib/chime_sdk/config.rb
136
141
  - lib/chime_sdk/controller/attendees.rb
@@ -158,29 +163,19 @@ files:
158
163
  - spec/rails_app/app/assets/config/manifest.js
159
164
  - spec/rails_app/app/assets/images/.keep
160
165
  - spec/rails_app/app/assets/javascripts/.keep
166
+ - spec/rails_app/app/assets/javascripts/application.js
161
167
  - spec/rails_app/app/assets/stylesheets/application.css
162
168
  - spec/rails_app/app/assets/stylesheets/scaffolds.scss
163
169
  - spec/rails_app/app/controllers/api/meeting_attendees_controller.rb
164
170
  - spec/rails_app/app/controllers/api/meetings_controller.rb
171
+ - spec/rails_app/app/controllers/api/public/meeting_attendees_controller.rb
172
+ - spec/rails_app/app/controllers/api/public/meetings_controller.rb
165
173
  - spec/rails_app/app/controllers/api/rooms_controller.rb
166
174
  - spec/rails_app/app/controllers/application_controller.rb
167
175
  - spec/rails_app/app/controllers/entries_controller.rb
168
176
  - spec/rails_app/app/controllers/meeting_attendees_controller.rb
169
177
  - spec/rails_app/app/controllers/meetings_controller.rb
170
178
  - 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
179
  - spec/rails_app/app/models/application_record.rb
185
180
  - spec/rails_app/app/models/entry.rb
186
181
  - spec/rails_app/app/models/room.rb
@@ -198,15 +193,11 @@ files:
198
193
  - spec/rails_app/app/views/rooms/new.html.erb
199
194
  - spec/rails_app/app/views/rooms/show.html.erb
200
195
  - 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
196
  - spec/rails_app/bin/bundle
204
197
  - spec/rails_app/bin/rails
205
198
  - spec/rails_app/bin/rake
206
199
  - spec/rails_app/bin/setup
207
200
  - spec/rails_app/bin/spring
208
- - spec/rails_app/bin/webpack
209
- - spec/rails_app/bin/webpack-dev-server
210
201
  - spec/rails_app/bin/yarn
211
202
  - spec/rails_app/config.ru
212
203
  - spec/rails_app/config/application.rb
@@ -237,12 +228,6 @@ files:
237
228
  - spec/rails_app/config/secrets.yml
238
229
  - spec/rails_app/config/spring.rb
239
230
  - 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
231
  - spec/rails_app/db/migrate/20200912140231_devise_create_users.rb
247
232
  - spec/rails_app/db/migrate/20200912140352_add_tokens_to_users.rb
248
233
  - spec/rails_app/db/migrate/20200912140657_create_rooms.rb
@@ -250,8 +235,6 @@ files:
250
235
  - spec/rails_app/db/schema.rb
251
236
  - spec/rails_app/db/seeds.rb
252
237
  - spec/rails_app/log/.keep
253
- - spec/rails_app/package.json
254
- - spec/rails_app/postcss.config.js
255
238
  - spec/rails_app/public/404.html
256
239
  - spec/rails_app/public/422.html
257
240
  - spec/rails_app/public/500.html
@@ -261,11 +244,12 @@ files:
261
244
  - spec/requests/atendees_spec.rb
262
245
  - spec/requests/meetings_spec.rb
263
246
  - spec/spec_helper.rb
247
+ - templates/amazon-chime-sdk-policy.yml
264
248
  homepage: https://github.com/simukappu/amazon-chime-sdk-rails
265
249
  licenses:
266
250
  - MIT
267
251
  metadata: {}
268
- post_install_message:
252
+ post_install_message:
269
253
  rdoc_options: []
270
254
  require_paths:
271
255
  - lib
@@ -280,8 +264,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
280
264
  - !ruby/object:Gem::Version
281
265
  version: '0'
282
266
  requirements: []
283
- rubygems_version: 3.1.2
284
- signing_key:
267
+ rubygems_version: 3.2.33
268
+ signing_key:
285
269
  specification_version: 4
286
270
  summary: Server-side implementation of Amazon Chime SDK for Ruby on Rails application
287
271
  test_files:
@@ -295,29 +279,19 @@ test_files:
295
279
  - spec/rails_app/app/assets/config/manifest.js
296
280
  - spec/rails_app/app/assets/images/.keep
297
281
  - spec/rails_app/app/assets/javascripts/.keep
282
+ - spec/rails_app/app/assets/javascripts/application.js
298
283
  - spec/rails_app/app/assets/stylesheets/application.css
299
284
  - spec/rails_app/app/assets/stylesheets/scaffolds.scss
300
285
  - spec/rails_app/app/controllers/api/meeting_attendees_controller.rb
301
286
  - spec/rails_app/app/controllers/api/meetings_controller.rb
287
+ - spec/rails_app/app/controllers/api/public/meeting_attendees_controller.rb
288
+ - spec/rails_app/app/controllers/api/public/meetings_controller.rb
302
289
  - spec/rails_app/app/controllers/api/rooms_controller.rb
303
290
  - spec/rails_app/app/controllers/application_controller.rb
304
291
  - spec/rails_app/app/controllers/entries_controller.rb
305
292
  - spec/rails_app/app/controllers/meeting_attendees_controller.rb
306
293
  - spec/rails_app/app/controllers/meetings_controller.rb
307
294
  - 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
295
  - spec/rails_app/app/models/application_record.rb
322
296
  - spec/rails_app/app/models/entry.rb
323
297
  - spec/rails_app/app/models/room.rb
@@ -335,15 +309,11 @@ test_files:
335
309
  - spec/rails_app/app/views/rooms/new.html.erb
336
310
  - spec/rails_app/app/views/rooms/show.html.erb
337
311
  - 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
312
  - spec/rails_app/bin/bundle
341
313
  - spec/rails_app/bin/rails
342
314
  - spec/rails_app/bin/rake
343
315
  - spec/rails_app/bin/setup
344
316
  - spec/rails_app/bin/spring
345
- - spec/rails_app/bin/webpack
346
- - spec/rails_app/bin/webpack-dev-server
347
317
  - spec/rails_app/bin/yarn
348
318
  - spec/rails_app/config.ru
349
319
  - spec/rails_app/config/application.rb
@@ -374,12 +344,6 @@ test_files:
374
344
  - spec/rails_app/config/secrets.yml
375
345
  - spec/rails_app/config/spring.rb
376
346
  - 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
347
  - spec/rails_app/db/migrate/20200912140231_devise_create_users.rb
384
348
  - spec/rails_app/db/migrate/20200912140352_add_tokens_to_users.rb
385
349
  - spec/rails_app/db/migrate/20200912140657_create_rooms.rb
@@ -387,8 +351,6 @@ test_files:
387
351
  - spec/rails_app/db/schema.rb
388
352
  - spec/rails_app/db/seeds.rb
389
353
  - spec/rails_app/log/.keep
390
- - spec/rails_app/package.json
391
- - spec/rails_app/postcss.config.js
392
354
  - spec/rails_app/public/404.html
393
355
  - spec/rails_app/public/422.html
394
356
  - 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)