From 09f4e4d45417b622f273965c72087ccbe9d591bc Mon Sep 17 00:00:00 2001 From: Bilal Date: Tue, 1 Sep 2020 05:23:32 +0300 Subject: [PATCH] show both, files and file infos in acq.media API response --- app/controllers/api/releases_controller.rb | 3 ++- .../serializable_acquired_media_release.rb | 12 +++++++++++- .../api/acquired_media_releases_controller_spec.rb | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/releases_controller.rb b/app/controllers/api/releases_controller.rb index 5a92a4a..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, "ActiveStorage::Attachment".to_sym => ActiveStorage::SerializableAttachment, } render jsonapi: release, status: status, class: mapping, - include: [:files] + 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 3aa56cc..6700b60 100644 --- a/app/serializers/serializable_acquired_media_release.rb +++ b/app/serializers/serializable_acquired_media_release.rb @@ -7,7 +7,17 @@ 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 + end + + meta do + { count: @object.file_infos.size } + end + end + has_many :files do data do @object.files diff --git a/spec/controllers/api/acquired_media_releases_controller_spec.rb b/spec/controllers/api/acquired_media_releases_controller_spec.rb index 7f4c612..e15effb 100644 --- a/spec/controllers/api/acquired_media_releases_controller_spec.rb +++ b/spec/controllers/api/acquired_media_releases_controller_spec.rb @@ -37,7 +37,7 @@ RSpec.describe Api::AcquiredMediaReleasesController, type: :controller do sign_in_to_api(current_user) get :show, params: { id: tested_release.id } - expect(response.body).not_to match /file_infos/ + expect(response.body).to match /file_infos/ expect(response.body).to match /files/ end end