diff --git a/app/controllers/api/releases_controller.rb b/app/controllers/api/releases_controller.rb index 0bff7bb..4c29ba9 100644 --- a/app/controllers/api/releases_controller.rb +++ b/app/controllers/api/releases_controller.rb @@ -45,13 +45,14 @@ class Api::ReleasesController < Api::ApiController if model_name == "acquired_media_release" mapping = { "#{model_name.camelize}": SerializableAcquiredMediaRelease, - FileInfo: SerializableFileInfo + FileInfo: SerializableFileInfo, + "ActiveStorage::Attachment".to_sym => ActiveStorage::SerializableAttachment, } render jsonapi: release, status: status, class: mapping, - include: [:file_infos] + include: [:files, :file_infos] else mapping = { "#{model_name.camelize}": show_serializable, diff --git a/app/serializers/serializable_acquired_media_release.rb b/app/serializers/serializable_acquired_media_release.rb index a05b181..6700b60 100644 --- a/app/serializers/serializable_acquired_media_release.rb +++ b/app/serializers/serializable_acquired_media_release.rb @@ -7,7 +7,7 @@ class SerializableAcquiredMediaRelease < JSONAPI::Serializable::Resource :person_title, :person_company, :created_at, :updated_at, :collection_uid, :territory_old, :term_old, :applicable_medium_id, :applicable_medium_text, :territory_id, :territory_text, :term_id, :term_text, :restriction_id, :restriction_text, :categories, :description, :tag_list - + has_many :file_infos do data do @object.file_infos @@ -17,4 +17,14 @@ class SerializableAcquiredMediaRelease < JSONAPI::Serializable::Resource { count: @object.file_infos.size } end end + + has_many :files do + data do + @object.files + end + + meta do + { count: @object.files.size } + end + end end diff --git a/spec/controllers/api/acquired_media_releases_controller_spec.rb b/spec/controllers/api/acquired_media_releases_controller_spec.rb index 6cceb57..e15effb 100644 --- a/spec/controllers/api/acquired_media_releases_controller_spec.rb +++ b/spec/controllers/api/acquired_media_releases_controller_spec.rb @@ -30,6 +30,16 @@ RSpec.describe Api::AcquiredMediaReleasesController, type: :controller do expect(response).to be_successful end + + it 'contains files attachment data' do + tested_release = create(:acquired_media_release, name: 'ct1', project_id: project.id) + + sign_in_to_api(current_user) + get :show, params: { id: tested_release.id } + + expect(response.body).to match /file_infos/ + expect(response.body).to match /files/ + end end describe '#create' do