Compare commits
2 Commits
improve-do
...
add-misc-r
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
684883036a | ||
|
|
6e8788f9ea |
11
app/controllers/api/medical_releases_controller.rb
Normal file
11
app/controllers/api/medical_releases_controller.rb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
class Api::MedicalReleasesController < Api::ReleasesController
|
||||||
|
deserializable_resource :medical_release, only: [:create, :update]
|
||||||
|
|
||||||
|
def model_name
|
||||||
|
"medical_release"
|
||||||
|
end
|
||||||
|
|
||||||
|
def attributes_for_index
|
||||||
|
[:name]
|
||||||
|
end
|
||||||
|
end
|
||||||
11
app/controllers/api/misc_releases_controller.rb
Normal file
11
app/controllers/api/misc_releases_controller.rb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
class Api::MiscReleasesController < Api::ReleasesController
|
||||||
|
deserializable_resource :misc_release, only: [:create, :update]
|
||||||
|
|
||||||
|
def model_name
|
||||||
|
"misc_release"
|
||||||
|
end
|
||||||
|
|
||||||
|
def attributes_for_index
|
||||||
|
[:name]
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -10,8 +10,10 @@ class Api::SyncController < Api::ApiController
|
|||||||
@appearance_releases = (AppearanceRelease.where(project: accessible_projects))
|
@appearance_releases = (AppearanceRelease.where(project: accessible_projects))
|
||||||
@location_releases = (LocationRelease.where(project: accessible_projects))
|
@location_releases = (LocationRelease.where(project: accessible_projects))
|
||||||
@material_releases = (MaterialRelease.where(project: accessible_projects))
|
@material_releases = (MaterialRelease.where(project: accessible_projects))
|
||||||
|
@medical_releases = MedicalRelease.where(project: accessible_projects)
|
||||||
|
@misc_releases = MiscRelease.where(project: accessible_projects)
|
||||||
@talent_releases = (TalentRelease.where(project: accessible_projects))
|
@talent_releases = (TalentRelease.where(project: accessible_projects))
|
||||||
@notes = notes_query(Note.where(notable: @appearance_releases + @location_releases + @material_releases + @talent_releases + @acquired_media_releases ))
|
@notes = notes_query(Note.where(notable: @appearance_releases + @location_releases + @material_releases + @medical_releases + @misc_releases + @talent_releases + @acquired_media_releases ))
|
||||||
|
|
||||||
render json: {
|
render json: {
|
||||||
data: {
|
data: {
|
||||||
@@ -22,6 +24,8 @@ class Api::SyncController < Api::ApiController
|
|||||||
appearance_releases: releases_query(@appearance_releases),
|
appearance_releases: releases_query(@appearance_releases),
|
||||||
location_releases: releases_query(@location_releases),
|
location_releases: releases_query(@location_releases),
|
||||||
material_releases: releases_query(@material_releases),
|
material_releases: releases_query(@material_releases),
|
||||||
|
medical_releases: releases_query(@medical_releases),
|
||||||
|
misc_releases: releases_query(@misc_releases),
|
||||||
talent_releases: releases_query(@talent_releases),
|
talent_releases: releases_query(@talent_releases),
|
||||||
notes: @notes
|
notes: @notes
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ require 'oath/constraints/signed_in'
|
|||||||
require 'sidekiq/web'
|
require 'sidekiq/web'
|
||||||
|
|
||||||
Rails.application.routes.draw do
|
Rails.application.routes.draw do
|
||||||
AVAILABLE_LOCALES_REGEX = /#{I18n.available_locales.join("|")}/
|
AVAILABLE_LOCALES_REGEX = /#{I18n.available_locales.join("|")}/.freeze
|
||||||
|
|
||||||
concern :confirmable do
|
concern :confirmable do
|
||||||
resources :video_release_confirmations, only: [:new, :create, :destroy]
|
resources :video_release_confirmations, only: [:new, :create, :destroy]
|
||||||
@@ -136,8 +136,8 @@ Rails.application.routes.draw do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
RELEASES = [:acquired_media_releases, :appearance_releases, :talent_releases, :material_releases, :location_releases]
|
RELEASES = [:acquired_media_releases, :appearance_releases, :talent_releases, :material_releases, :medical_releases, :misc_releases, :location_releases].freeze
|
||||||
ALL_RELEASES = RELEASES + [:music_releases, :medical_releases, :misc_releases]
|
ALL_RELEASES = RELEASES + [:music_releases]
|
||||||
|
|
||||||
ALL_RELEASES.each do |release|
|
ALL_RELEASES.each do |release|
|
||||||
resources release, only: [], concerns: :taggable
|
resources release, only: [], concerns: :taggable
|
||||||
@@ -158,7 +158,7 @@ Rails.application.routes.draw do
|
|||||||
resources :contract_templates, only: [:index]
|
resources :contract_templates, only: [:index]
|
||||||
end
|
end
|
||||||
resources :contract_templates, only: [:show] do
|
resources :contract_templates, only: [:show] do
|
||||||
RELEASES.each do |release|
|
(RELEASES - [:misc_releases, :medical_releases]).each do |release|
|
||||||
resources release, controller: release, only: [:create]
|
resources release, controller: release, only: [:create]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
42
spec/controllers/api/medical_releases_controller_spec.rb
Normal file
42
spec/controllers/api/medical_releases_controller_spec.rb
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe Api::MedicalReleasesController, type: :controller do
|
||||||
|
let(:current_user) { create(:user) }
|
||||||
|
let(:project) { create(:project, name: 'first', account: current_user.primary_account) }
|
||||||
|
|
||||||
|
describe '#index' do
|
||||||
|
it 'returns a succesful response' do
|
||||||
|
create(:medical_release, person_first_name: 'John', person_last_name: 'Lee', project_id: project.id)
|
||||||
|
create(:medical_release, person_first_name: 'Jane', person_last_name: 'Lee', project_id: project.id)
|
||||||
|
|
||||||
|
sign_in_to_api(current_user)
|
||||||
|
get :index, params: { project_id: project.id }
|
||||||
|
|
||||||
|
expect(response).to be_successful
|
||||||
|
expect(response.body).to include 'John'
|
||||||
|
expect(response.body).to include 'Jane'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#show' do
|
||||||
|
it 'returns a succesful response' do
|
||||||
|
release1 = create(:medical_release, person_first_name: 'John', person_last_name: 'Lee', project_id: project.id)
|
||||||
|
release2 = create(:medical_release, person_first_name: 'Jane', person_last_name: 'Lee', project_id: project.id)
|
||||||
|
|
||||||
|
sign_in_to_api(current_user)
|
||||||
|
get :show, params: { id: release1 }
|
||||||
|
|
||||||
|
expect(response).to be_successful
|
||||||
|
expect(response.body).to include 'John'
|
||||||
|
expect(response.body).not_to include 'Jane'
|
||||||
|
|
||||||
|
get :show, params: { id: release2 }
|
||||||
|
|
||||||
|
expect(response).to be_successful
|
||||||
|
expect(response.body).not_to include 'John'
|
||||||
|
expect(response.body).to include 'Jane'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
42
spec/controllers/api/misc_releases_controller_spec.rb
Normal file
42
spec/controllers/api/misc_releases_controller_spec.rb
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe Api::MiscReleasesController, type: :controller do
|
||||||
|
let(:current_user) { create(:user) }
|
||||||
|
let(:project) { create(:project, name: 'first', account: current_user.primary_account) }
|
||||||
|
|
||||||
|
describe '#index' do
|
||||||
|
it 'returns a succesful response' do
|
||||||
|
create(:misc_release, person_first_name: 'John', person_last_name: 'Lee', project_id: project.id)
|
||||||
|
create(:misc_release, person_first_name: 'Jane', person_last_name: 'Lee', project_id: project.id)
|
||||||
|
|
||||||
|
sign_in_to_api(current_user)
|
||||||
|
get :index, params: { project_id: project.id }
|
||||||
|
|
||||||
|
expect(response).to be_successful
|
||||||
|
expect(response.body).to include 'John'
|
||||||
|
expect(response.body).to include 'Jane'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#show' do
|
||||||
|
it 'returns a succesful response' do
|
||||||
|
release1 = create(:misc_release, person_first_name: 'John', person_last_name: 'Lee', project_id: project.id)
|
||||||
|
release2 = create(:misc_release, person_first_name: 'Jane', person_last_name: 'Lee', project_id: project.id)
|
||||||
|
|
||||||
|
sign_in_to_api(current_user)
|
||||||
|
get :show, params: { id: release1 }
|
||||||
|
|
||||||
|
expect(response).to be_successful
|
||||||
|
expect(response.body).to include 'John'
|
||||||
|
expect(response.body).not_to include 'Jane'
|
||||||
|
|
||||||
|
get :show, params: { id: release2 }
|
||||||
|
|
||||||
|
expect(response).to be_successful
|
||||||
|
expect(response.body).not_to include 'John'
|
||||||
|
expect(response.body).to include 'Jane'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -18,6 +18,14 @@ releases = [
|
|||||||
{
|
{
|
||||||
type: :material_release,
|
type: :material_release,
|
||||||
obligatory_attribute: :name
|
obligatory_attribute: :name
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: :medical_release,
|
||||||
|
obligatory_attribute: :person_name
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: :misc_release,
|
||||||
|
obligatory_attribute: :person_name
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -110,6 +110,26 @@ RSpec.describe Api::SyncController, type: :controller do
|
|||||||
expect(guardian_photo).to include('id', 'type', 'attributes')
|
expect(guardian_photo).to include('id', 'type', 'attributes')
|
||||||
expect(photo_attributes).to include('filename', 'content_type', 'url', 'thumbnail_url')
|
expect(photo_attributes).to include('filename', 'content_type', 'url', 'thumbnail_url')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'contains misc releases' do
|
||||||
|
create_default_data
|
||||||
|
|
||||||
|
get :index
|
||||||
|
|
||||||
|
misc_releases = attributes_for_type('misc_releases')
|
||||||
|
|
||||||
|
expect(misc_releases.first).to include('id')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'contains misc releases' do
|
||||||
|
create_default_data
|
||||||
|
|
||||||
|
get :index
|
||||||
|
|
||||||
|
medical_releases = attributes_for_type('medical_releases')
|
||||||
|
|
||||||
|
expect(medical_releases.first).to include('id')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
@@ -120,6 +140,8 @@ RSpec.describe Api::SyncController, type: :controller do
|
|||||||
create(:talent_release, project: project)
|
create(:talent_release, project: project)
|
||||||
create(:location_release, project: project)
|
create(:location_release, project: project)
|
||||||
create(:material_release, project: project)
|
create(:material_release, project: project)
|
||||||
|
create(:medical_release, project: project)
|
||||||
|
create(:misc_release, project: project)
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_default_data_with_guardian_info
|
def create_default_data_with_guardian_info
|
||||||
|
|||||||
Reference in New Issue
Block a user