From 4dc1a109c5facb7c23f95ad07000643d090b2f83 Mon Sep 17 00:00:00 2001 From: evazion Date: Fri, 14 Oct 2022 15:32:48 -0500 Subject: [PATCH] media metadata: fix exception in /media_metadata.json?only=media_asset. Fix NameError exception caused by the MediaMetadataController trying to lookup "MediaMetadatum" as the model name. --- app/controllers/media_metadata_controller.rb | 2 +- app/models/media_metadata.rb | 4 ++++ test/functional/media_metadata_controller_test.rb | 8 ++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/controllers/media_metadata_controller.rb b/app/controllers/media_metadata_controller.rb index 5ea61d0ed..4c99404c4 100644 --- a/app/controllers/media_metadata_controller.rb +++ b/app/controllers/media_metadata_controller.rb @@ -5,6 +5,6 @@ class MediaMetadataController < ApplicationController def index @media_metadata = authorize MediaMetadata.visible(CurrentUser.user).paginated_search(params, count_pages: true) - respond_with(@media_metadata) + respond_with(@media_metadata, model: "MediaMetadata") end end diff --git a/app/models/media_metadata.rb b/app/models/media_metadata.rb index 6e37b3bd4..c5e12e77c 100644 --- a/app/models/media_metadata.rb +++ b/app/models/media_metadata.rb @@ -32,4 +32,8 @@ class MediaMetadata < ApplicationRecord def frame_delays metadata["Ugoira:FrameDelays"].to_a end + + def self.available_includes + [:media_asset] + end end diff --git a/test/functional/media_metadata_controller_test.rb b/test/functional/media_metadata_controller_test.rb index 7f78c5064..747765b29 100644 --- a/test/functional/media_metadata_controller_test.rb +++ b/test/functional/media_metadata_controller_test.rb @@ -10,6 +10,14 @@ class MediaMetadataControllerTest < ActionDispatch::IntegrationTest assert_response :success end + should "work with the only=media_asset param" do + metadata = create(:media_metadata) + get media_metadata_path(only: "media_asset"), as: :json + + assert_response :success + assert_equal(metadata.media_asset.id, response.parsed_body.sole.dig("media_asset", "id")) + end + context "searching" do setup do @jpg = create(:media_metadata, file: "test/files/test.jpg")