Compare commits
2 Commits
fix-bug-wi
...
api-user-c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
853f1207f2 | ||
|
|
0e8c226b7c |
@@ -1,6 +1,4 @@
|
||||
$(document).on("click", "[data-behavior=play_recording]", function() {
|
||||
$("#raw-video-embed").remove();
|
||||
|
||||
clearPlayingHighlight();
|
||||
$(this).parent().parent().addClass('playing-highlight');
|
||||
|
||||
@@ -20,6 +18,7 @@ $(document).on("click", "[data-behavior=play_recording]", function() {
|
||||
});
|
||||
|
||||
$(document).on("click", "[data-behavior=play_stream]", function() {
|
||||
// clearPlayingHighlight();
|
||||
$("#broadcast_video").data('videoType', 'stream');
|
||||
});
|
||||
|
||||
|
||||
5
app/controllers/api/accounts_controller.rb
Normal file
5
app/controllers/api/accounts_controller.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
class Api::AccountsController < Api::ApiController
|
||||
def show
|
||||
render jsonapi: current_user.accounts
|
||||
end
|
||||
end
|
||||
21
app/serializers/serializable_account.rb
Normal file
21
app/serializers/serializable_account.rb
Normal file
@@ -0,0 +1,21 @@
|
||||
class SerializableAccount < JSONAPI::Serializable::Resource
|
||||
type "account"
|
||||
|
||||
attributes :name
|
||||
|
||||
attribute :users do
|
||||
@object.users.map do |user|
|
||||
if user.avatar.attached?
|
||||
avatar = Rails.application.routes.url_helpers.rails_blob_url(user.avatar, host: AppHost.new.domain_with_port)
|
||||
else
|
||||
avatar = nil
|
||||
end
|
||||
{
|
||||
email: user.email,
|
||||
name: user.full_name,
|
||||
role: user.account_auths.map(&:role).compact.join(", "),
|
||||
avatar: avatar
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,7 +1,6 @@
|
||||
<% if broadcast.director_mode_video_embed.present? && params[:non_director_mode].nil? %>
|
||||
<div id="director_broadcast_video" class="embed-responsive-item" data-video-type="stream">
|
||||
<div id="broadcast_video" class="embed-responsive-item" data-video-type="strean"></div>
|
||||
<div id="raw-video-embed"><%= raw broadcast.director_mode_video_embed %></div>
|
||||
<%= raw broadcast.director_mode_video_embed %>
|
||||
</div>
|
||||
<% elsif broadcast.streamer_recording? && broadcast.active? %>
|
||||
<div id="broadcast_video" class="embed-responsive-item" data-video-type="stream"></div>
|
||||
|
||||
@@ -171,6 +171,7 @@ Rails.application.routes.draw do
|
||||
post 'user_token' => 'user_token#create'
|
||||
post 'users' => 'users#create'
|
||||
resource :profiles, only: [:show]
|
||||
resource :accounts, only: [:show]
|
||||
resources :projects, only: [:index] do
|
||||
resources :broadcasts, only: [:index, :show, :update]
|
||||
RELEASES.each do |release|
|
||||
|
||||
48
spec/controllers/api/accounts_controller_spec.rb
Normal file
48
spec/controllers/api/accounts_controller_spec.rb
Normal file
@@ -0,0 +1,48 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Api::AccountsController, type: :controller do
|
||||
let(:current_user) { create(:user, first_name: 'Current') }
|
||||
let(:new_acc) { create(:account, name: 'New Acc') }
|
||||
let(:different_user) { create(:user, first_name: 'Different') }
|
||||
let(:new_auth) { create(:account_auth, account: new_acc, user: different_user)}
|
||||
|
||||
describe '#show' do
|
||||
it 'responds with accounts info for the current user' do
|
||||
sign_in_to_api(current_user)
|
||||
|
||||
get :show
|
||||
|
||||
expect(response).to be_successful
|
||||
|
||||
current_user.accounts.each do |acc|
|
||||
expect(response.body).to have_content acc.name
|
||||
|
||||
acc.users.each do |user|
|
||||
expect(response.body).to have_content user.full_name
|
||||
expect(response.body).to have_content user.email
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
it 'does not include other users accounts' do
|
||||
different_user.update(account_auths: [new_auth])
|
||||
|
||||
sign_in_to_api(current_user)
|
||||
|
||||
get :show
|
||||
|
||||
expect(response).to be_successful
|
||||
|
||||
different_user.accounts.each do |acc|
|
||||
expect(response.body).not_to have_content acc.name
|
||||
|
||||
acc.users.each do |user|
|
||||
expect(response.body).not_to have_content user.full_name
|
||||
expect(response.body).not_to have_content user.email
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -204,31 +204,12 @@ feature 'User managing broadcasts' do
|
||||
|
||||
visit project_broadcast_path(project, broadcast)
|
||||
|
||||
expect(page).to have_selector('#raw-video-embed')
|
||||
expect(page).not_to have_selector('#broadcast_video')
|
||||
expect(page).to have_selector('#director_broadcast_video')
|
||||
|
||||
expect(page).to have_selector('#director_mode_switch')
|
||||
end
|
||||
|
||||
scenario 'playing recordings is possible in director mode', js: true do
|
||||
broadcast = create(:broadcast, :with_stream, :with_files, project: project, director_mode_video_embed: 'director_mode')
|
||||
create(:broadcast_recording, broadcast: broadcast, asset_uid: "asset_uid_1")
|
||||
create(:broadcast_recording, broadcast: broadcast, asset_uid: "asset_uid_2")
|
||||
|
||||
visit project_broadcast_path(project, broadcast)
|
||||
|
||||
expect(page).to have_selector('#raw-video-embed')
|
||||
expect(page).to have_selector('#broadcast_video')
|
||||
|
||||
broadcast_video_div = find('#broadcast_video')
|
||||
expect(broadcast_video_div.all('*').length).to eq 0
|
||||
|
||||
first("[data-behavior='play_recording']").click
|
||||
|
||||
expect(page).not_to have_selector('#raw-video-embed')
|
||||
expect(broadcast_video_div.all('*').length).to be > 2
|
||||
end
|
||||
|
||||
context 'When the user is associate' do
|
||||
let(:current_user) { create(:user, :associate) }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user