Skip to content

Commit

Permalink
PERF: Reduce size of search payload by removing unused topic attributes.
Browse files Browse the repository at this point in the history
  • Loading branch information
tgxworld committed Jul 16, 2020
1 parent 88a43ef commit 84de643
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 6 deletions.
21 changes: 15 additions & 6 deletions app/serializers/search_topic_list_item_serializer.rb
Expand Up @@ -5,11 +5,20 @@ class SearchTopicListItemSerializer < ListableTopicSerializer

attributes :category_id

def include_image_url?
false
end

def include_thumbnails?
false
%i{
image_url
thumbnails
title
created_at
last_posted_at
bumped_at
bumped
highest_post_number
reply_count
unseen
}.each do |attr|
define_method("include_#{attr}?") do
false
end
end
end
42 changes: 42 additions & 0 deletions spec/serializers/search_topic_list_item_serializer_spec.rb
@@ -0,0 +1,42 @@
# frozen_string_literal: true

require 'rails_helper'

RSpec.describe SearchTopicListItemSerializer do
fab!(:admin) { Fabricate(:admin) }
fab!(:post) { Fabricate(:post) }
let(:topic) { post.topic }

let(:serializer) do
SearchTopicListItemSerializer.new(topic, scope: Guardian.new(admin), root: false)
end

it 'should only include the required keys' do
current_keys = serializer.as_json.keys

expected_keys = [
:id,
:fancy_title,
:slug,
:posts_count,
:archetype,
:pinned,
:unpinned,
:visible,
:closed,
:archived,
:bookmarked,
:liked,
:category_id
]

extra_keys = current_keys - expected_keys
missing_keys = expected_keys - current_keys

expect(extra_keys).to eq([]), lambda {
"Please verify if the following keys are required as part of the serializer's payload: #{extra_keys.join(", ")}"
}

expect(missing_keys).to eq([])
end
end

1 comment on commit 84de643

@discoursebot
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This commit has been mentioned on Discourse Meta. There might be relevant details there:

https://meta.discourse.org/t/move-to-existing-topic-is-missing-title-of-suggested-topics/157974/5

Please sign in to comment.