From cf23f0414f73886c3efcb6dfb1ca7374520aa50d Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Mon, 8 Dec 2025 12:40:17 +0100 Subject: [PATCH] Add `id` to collection serializers (#37157) --- app/serializers/rest/base_collection_serializer.rb | 8 ++++++-- spec/serializers/rest/base_collection_serializer_spec.rb | 2 ++ spec/serializers/rest/collection_serializer_spec.rb | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/serializers/rest/base_collection_serializer.rb b/app/serializers/rest/base_collection_serializer.rb index 28fcec02ab..0e9bfc4cfc 100644 --- a/app/serializers/rest/base_collection_serializer.rb +++ b/app/serializers/rest/base_collection_serializer.rb @@ -1,11 +1,15 @@ # frozen_string_literal: true class REST::BaseCollectionSerializer < ActiveModel::Serializer - attributes :uri, :name, :description, :local, :sensitive, :discoverable, - :item_count, :created_at, :updated_at + attributes :id, :uri, :name, :description, :local, :sensitive, + :discoverable, :item_count, :created_at, :updated_at belongs_to :tag, serializer: REST::StatusSerializer::TagSerializer + def id + object.id.to_s + end + def item_count object.respond_to?(:item_count) ? object.item_count : object.collection_items.count end diff --git a/spec/serializers/rest/base_collection_serializer_spec.rb b/spec/serializers/rest/base_collection_serializer_spec.rb index 39f853f4d0..c988a247e7 100644 --- a/spec/serializers/rest/base_collection_serializer_spec.rb +++ b/spec/serializers/rest/base_collection_serializer_spec.rb @@ -15,6 +15,7 @@ RSpec.describe REST::BaseCollectionSerializer do let(:tag) { Fabricate(:tag, name: 'discovery') } let(:collection) do Fabricate(:collection, + id: 2342, name: 'Exquisite follows', description: 'Always worth a follow', local: true, @@ -26,6 +27,7 @@ RSpec.describe REST::BaseCollectionSerializer do it 'includes the relevant attributes' do expect(subject) .to include( + 'id' => '2342', 'name' => 'Exquisite follows', 'description' => 'Always worth a follow', 'local' => true, diff --git a/spec/serializers/rest/collection_serializer_spec.rb b/spec/serializers/rest/collection_serializer_spec.rb index 10bf9ee2b5..f0baf7dff8 100644 --- a/spec/serializers/rest/collection_serializer_spec.rb +++ b/spec/serializers/rest/collection_serializer_spec.rb @@ -15,6 +15,7 @@ RSpec.describe REST::CollectionSerializer do let(:tag) { Fabricate(:tag, name: 'discovery') } let(:collection) do Fabricate(:collection, + id: 2342, name: 'Exquisite follows', description: 'Always worth a follow', local: true, @@ -27,6 +28,7 @@ RSpec.describe REST::CollectionSerializer do expect(subject) .to include( 'account' => an_instance_of(Hash), + 'id' => '2342', 'name' => 'Exquisite follows', 'description' => 'Always worth a follow', 'local' => true,