Compare commits
2 Commits
add-notice
...
api-user-c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
853f1207f2 | ||
|
|
0e8c226b7c |
@@ -17,7 +17,6 @@ $(document).on "turbolinks:load", ->
|
|||||||
when "video_status_update" then @showVideoStatusUpdate(data.content)
|
when "video_status_update" then @showVideoStatusUpdate(data.content)
|
||||||
when "download_status_update" then @showDownloadStatusUpdate(data.content)
|
when "download_status_update" then @showDownloadStatusUpdate(data.content)
|
||||||
when "conference_recording_ready" then @showDownloadStatusUpdate(data.content)
|
when "conference_recording_ready" then @showDownloadStatusUpdate(data.content)
|
||||||
when "appearance_matching_flash_message" then @showMatchingStatusUpdate(data.content)
|
|
||||||
|
|
||||||
showVideoStatusUpdate: (content) ->
|
showVideoStatusUpdate: (content) ->
|
||||||
$("[data-ujs-target='video-analysis-msg']").replaceWith content
|
$("[data-ujs-target='video-analysis-msg']").replaceWith content
|
||||||
@@ -25,7 +24,3 @@ $(document).on "turbolinks:load", ->
|
|||||||
showDownloadStatusUpdate: (content) ->
|
showDownloadStatusUpdate: (content) ->
|
||||||
$(".flash-message").html content
|
$(".flash-message").html content
|
||||||
$(".toast").toast('show')
|
$(".toast").toast('show')
|
||||||
|
|
||||||
showMatchingStatusUpdate: (content) ->
|
|
||||||
$(".flash-message").html content
|
|
||||||
$(".toast").toast('show')
|
|
||||||
|
|||||||
@@ -33,15 +33,4 @@ class ProjectsChannel < ApplicationCable::Channel
|
|||||||
content = ApplicationController.render partial: 'application/flash', locals: { flash: flash }
|
content = ApplicationController.render partial: 'application/flash', locals: { flash: flash }
|
||||||
broadcast_to project, event: :conference_recording_ready, content: content
|
broadcast_to project, event: :conference_recording_ready, content: content
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.appearance_matching_flash_message(project, message, flash_type = :notice)
|
|
||||||
if (flash_type == :notice)
|
|
||||||
flash = OpenStruct.new notice: message
|
|
||||||
else
|
|
||||||
flash = OpenStruct.new alert: message
|
|
||||||
end
|
|
||||||
content = ApplicationController.render partial: 'application/flash', locals: { flash: flash }
|
|
||||||
|
|
||||||
broadcast_to project, event: :appearance_matching_flash_message, content: content
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
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
|
||||||
@@ -6,10 +6,7 @@ class MatchAppearanceReleasesJob < ApplicationJob
|
|||||||
def perform(project, attachments)
|
def perform(project, attachments)
|
||||||
filtered_attachments_object = filter_attachments attachments
|
filtered_attachments_object = filter_attachments attachments
|
||||||
|
|
||||||
if filtered_attachments_object[:keys].blank?
|
return if filtered_attachments_object[:keys].blank?
|
||||||
ProjectsChannel.appearance_matching_flash_message project, failed_message, :alert
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
matching_request = MatchingRequest.create project: project, attachments: filtered_attachments_object[:signed_ids]
|
matching_request = MatchingRequest.create project: project, attachments: filtered_attachments_object[:signed_ids]
|
||||||
|
|
||||||
@@ -20,8 +17,6 @@ class MatchAppearanceReleasesJob < ApplicationJob
|
|||||||
handle_matches matches, project, key_signed_id_hash
|
handle_matches matches, project, key_signed_id_hash
|
||||||
handle_unmatches matches, project, key_signed_id_hash
|
handle_unmatches matches, project, key_signed_id_hash
|
||||||
matching_request.destroy
|
matching_request.destroy
|
||||||
|
|
||||||
ProjectsChannel.appearance_matching_flash_message project, success_message
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
@@ -118,12 +113,4 @@ class MatchAppearanceReleasesJob < ApplicationJob
|
|||||||
signed_ids: filtered_attachments_signed_ids
|
signed_ids: filtered_attachments_signed_ids
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def success_message
|
|
||||||
I18n.t 'appearance_releases.create.matching_completed'
|
|
||||||
end
|
|
||||||
|
|
||||||
def failed_message
|
|
||||||
I18n.t 'appearance_releases.create.matching_failed'
|
|
||||||
end
|
|
||||||
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
|
||||||
@@ -3,14 +3,14 @@
|
|||||||
<!-- Position toasts -->
|
<!-- Position toasts -->
|
||||||
<div class="position-absolute" style="top: 0.5rem; right: 0.5rem;">
|
<div class="position-absolute" style="top: 0.5rem; right: 0.5rem;">
|
||||||
<% if flash.alert.present? %>
|
<% if flash.alert.present? %>
|
||||||
<div id="flash-message" class="toast fade show bg-black text-white toast-min-w-border-radius" data-autohide="false">
|
<div class="toast fade show bg-black text-white toast-min-w-border-radius" data-autohide="false">
|
||||||
<div class="toast-body toast-border-left-danger">
|
<div class="toast-body toast-border-left-danger">
|
||||||
<button type="button" class="close text-white ml-2" data-dismiss="toast">×</button>
|
<button type="button" class="close text-white ml-2" data-dismiss="toast">×</button>
|
||||||
<p><%= flash.alert.html_safe %></p>
|
<p><%= flash.alert.html_safe %></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<% elsif flash.notice.present? %>
|
<% elsif flash.notice.present? %>
|
||||||
<div id="flash-message" class="toast fade show bg-black text-white toast-min-w-border-radius" data-autohide="false">
|
<div class="toast fade show bg-black text-white toast-min-w-border-radius" data-autohide="false">
|
||||||
<div class="toast-body toast-border-left-primary">
|
<div class="toast-body toast-border-left-primary">
|
||||||
<button type="button" class="close text-white ml-2" data-dismiss="toast">×</button>
|
<button type="button" class="close text-white ml-2" data-dismiss="toast">×</button>
|
||||||
<p><%= flash.notice.html_safe %></p>
|
<p><%= flash.notice.html_safe %></p>
|
||||||
@@ -19,3 +19,4 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -151,8 +151,6 @@ en:
|
|||||||
failed_import: Failed to create appearance release for files listed below
|
failed_import: Failed to create appearance release for files listed below
|
||||||
matching_started: Matching started
|
matching_started: Matching started
|
||||||
no_attachments: Failed to import - no attachments
|
no_attachments: Failed to import - no attachments
|
||||||
matching_completed: Matching completed. Reload page to see new releases
|
|
||||||
matching_failed: Matching failed
|
|
||||||
edit:
|
edit:
|
||||||
heading: Edit Appearance Release
|
heading: Edit Appearance Release
|
||||||
form:
|
form:
|
||||||
|
|||||||
@@ -58,8 +58,6 @@ es:
|
|||||||
failed_import: Failed to create appearance release for files listed below (ES)
|
failed_import: Failed to create appearance release for files listed below (ES)
|
||||||
matching_started: Matching started (ES)
|
matching_started: Matching started (ES)
|
||||||
no_attachments: Failed to import - no attachments (ES)
|
no_attachments: Failed to import - no attachments (ES)
|
||||||
matching_completed: Matching completed (ES)
|
|
||||||
matching_failed: Matching failed (ES)
|
|
||||||
form:
|
form:
|
||||||
guardian_2_info:
|
guardian_2_info:
|
||||||
heading: Second Guardian Information (if company requires) (ES)
|
heading: Second Guardian Information (if company requires) (ES)
|
||||||
|
|||||||
@@ -171,6 +171,7 @@ Rails.application.routes.draw do
|
|||||||
post 'user_token' => 'user_token#create'
|
post 'user_token' => 'user_token#create'
|
||||||
post 'users' => 'users#create'
|
post 'users' => 'users#create'
|
||||||
resource :profiles, only: [:show]
|
resource :profiles, only: [:show]
|
||||||
|
resource :accounts, only: [:show]
|
||||||
resources :projects, only: [:index] do
|
resources :projects, only: [:index] do
|
||||||
resources :broadcasts, only: [:index, :show, :update]
|
resources :broadcasts, only: [:index, :show, :update]
|
||||||
RELEASES.each do |release|
|
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
|
||||||
@@ -13,7 +13,6 @@ describe MatchAppearanceReleasesJob do
|
|||||||
it "returns if no attachment is sent" do
|
it "returns if no attachment is sent" do
|
||||||
expect(MatchingRequest).not_to receive(:create)
|
expect(MatchingRequest).not_to receive(:create)
|
||||||
attachments = []
|
attachments = []
|
||||||
expect(ProjectsChannel).to receive(:appearance_matching_flash_message).with(kind_of(Project), failure_flash_message, :alert)
|
|
||||||
MatchAppearanceReleasesJob.perform_now project, attachments
|
MatchAppearanceReleasesJob.perform_now project, attachments
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -21,7 +20,6 @@ describe MatchAppearanceReleasesJob do
|
|||||||
expect(MatchingRequest).not_to receive(:create)
|
expect(MatchingRequest).not_to receive(:create)
|
||||||
dummy_video = create(:video)
|
dummy_video = create(:video)
|
||||||
attachments = [dummy_video.file.blob.signed_id]
|
attachments = [dummy_video.file.blob.signed_id]
|
||||||
expect(ProjectsChannel).to receive(:appearance_matching_flash_message).with(kind_of(Project), failure_flash_message, :alert)
|
|
||||||
MatchAppearanceReleasesJob.perform_now project, attachments
|
MatchAppearanceReleasesJob.perform_now project, attachments
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -46,8 +44,6 @@ describe MatchAppearanceReleasesJob do
|
|||||||
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
||||||
expect(dummy_matching_request).to receive(:destroy)
|
expect(dummy_matching_request).to receive(:destroy)
|
||||||
|
|
||||||
expect(ProjectsChannel).to receive(:appearance_matching_flash_message).with(kind_of(Project), success_flash_message)
|
|
||||||
|
|
||||||
expect {
|
expect {
|
||||||
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
||||||
}.to change{AppearanceRelease.count}.by(1)
|
}.to change{AppearanceRelease.count}.by(1)
|
||||||
@@ -77,8 +73,6 @@ describe MatchAppearanceReleasesJob do
|
|||||||
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
||||||
expect(dummy_matching_request).to receive(:destroy)
|
expect(dummy_matching_request).to receive(:destroy)
|
||||||
|
|
||||||
expect(ProjectsChannel).to receive(:appearance_matching_flash_message).with(kind_of(Project), success_flash_message)
|
|
||||||
|
|
||||||
expect {
|
expect {
|
||||||
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
||||||
}.to change{AppearanceRelease.count}.by(1)
|
}.to change{AppearanceRelease.count}.by(1)
|
||||||
@@ -115,8 +109,6 @@ describe MatchAppearanceReleasesJob do
|
|||||||
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
||||||
expect(dummy_matching_request).to receive(:destroy)
|
expect(dummy_matching_request).to receive(:destroy)
|
||||||
|
|
||||||
expect(ProjectsChannel).to receive(:appearance_matching_flash_message).with(kind_of(Project), success_flash_message)
|
|
||||||
|
|
||||||
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
||||||
|
|
||||||
expect(AppearanceRelease.last.identifier).to eq mock_match.identifier
|
expect(AppearanceRelease.last.identifier).to eq mock_match.identifier
|
||||||
@@ -152,8 +144,6 @@ describe MatchAppearanceReleasesJob do
|
|||||||
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
||||||
expect(dummy_matching_request).to receive(:destroy)
|
expect(dummy_matching_request).to receive(:destroy)
|
||||||
|
|
||||||
expect(ProjectsChannel).to receive(:appearance_matching_flash_message).with(kind_of(Project), success_flash_message)
|
|
||||||
|
|
||||||
expect {
|
expect {
|
||||||
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
||||||
}.to change{AppearanceRelease.count}.by(2)
|
}.to change{AppearanceRelease.count}.by(2)
|
||||||
@@ -197,8 +187,6 @@ describe MatchAppearanceReleasesJob do
|
|||||||
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
||||||
expect(dummy_matching_request).to receive(:destroy)
|
expect(dummy_matching_request).to receive(:destroy)
|
||||||
|
|
||||||
expect(ProjectsChannel).to receive(:appearance_matching_flash_message).with(kind_of(Project), success_flash_message)
|
|
||||||
|
|
||||||
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
||||||
|
|
||||||
expect(AppearanceRelease.last.identifier).to eq mock_match.identifier
|
expect(AppearanceRelease.last.identifier).to eq mock_match.identifier
|
||||||
@@ -240,8 +228,6 @@ describe MatchAppearanceReleasesJob do
|
|||||||
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
||||||
expect(dummy_matching_request).to receive(:destroy)
|
expect(dummy_matching_request).to receive(:destroy)
|
||||||
|
|
||||||
expect(ProjectsChannel).to receive(:appearance_matching_flash_message).with(kind_of(Project), success_flash_message)
|
|
||||||
|
|
||||||
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
||||||
|
|
||||||
expect(AppearanceRelease.last.identifier).to eq mock_match.identifier
|
expect(AppearanceRelease.last.identifier).to eq mock_match.identifier
|
||||||
@@ -289,8 +275,6 @@ describe MatchAppearanceReleasesJob do
|
|||||||
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
expect(BrayniacAI::QrMatching).to receive(:create!).with(qr_matching_payload).and_return(qr_matching_mock_response)
|
||||||
expect(dummy_matching_request).to receive(:destroy)
|
expect(dummy_matching_request).to receive(:destroy)
|
||||||
|
|
||||||
expect(ProjectsChannel).to receive(:appearance_matching_flash_message).with(kind_of(Project), success_flash_message)
|
|
||||||
|
|
||||||
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
MatchAppearanceReleasesJob.perform_now project, signed_ids
|
||||||
|
|
||||||
releases = AppearanceRelease.last(2)
|
releases = AppearanceRelease.last(2)
|
||||||
@@ -304,14 +288,4 @@ describe MatchAppearanceReleasesJob do
|
|||||||
expect(releases[1].contract.attached?).to eq true
|
expect(releases[1].contract.attached?).to eq true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def success_flash_message
|
|
||||||
I18n.t 'appearance_releases.create.matching_completed'
|
|
||||||
end
|
|
||||||
|
|
||||||
def failure_flash_message
|
|
||||||
I18n.t 'appearance_releases.create.matching_failed'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user