DEV: return user IDs on the user search route (#21206)

We call the `/u/search/users` URL when autocompleting users. It returns 
user's name, username and avatar template, but not user ID.

We need it to return user IDs in order to display user status in certain situations. 
I could add ID to FoundUserWithStatusSerializer, so it will be added only if 
user status is enabled in site settings. But I feel that it's good to always return it, 
it's not a lot of data comparing to what we already return, and it should be useful 
in other scenarios.
This commit is contained in:
Andrei Prigorshnev 2023-04-25 18:25:57 +04:00 committed by GitHub
parent b59e0b22f4
commit 0ea5ae86ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

View File

@ -1,7 +1,7 @@
# frozen_string_literal: true
class FoundUserSerializer < ApplicationSerializer
attributes :username, :name, :avatar_template
attributes :id, :username, :name, :avatar_template
def include_name?
SiteSetting.enable_names?

View File

@ -4,6 +4,14 @@ RSpec.describe FoundUserSerializer do
fab!(:user) { Fabricate(:user) }
let(:serializer) { described_class.new(user, root: false) }
describe "#id" do
it "returns user id" do
json = serializer.as_json
expect(json.keys).to include :id
expect(json[:id]).to eq(user.id)
end
end
describe "#name" do
it "returns name if enabled in site settings" do
SiteSetting.enable_names = true