FIX: Undefined method when serializing a user
Apparently is is possible to have a user without a user_profile. This fix will return nil for any user_profile fields during serialization (like the after delete web hook) instead of blowing up.
This commit is contained in:
parent
1babc3bec6
commit
1fbe078ae0
|
@ -220,15 +220,15 @@ class UserSerializer < BasicUserSerializer
|
|||
end
|
||||
|
||||
def bio_raw
|
||||
object.user_profile.bio_raw
|
||||
object.user_profile&.bio_raw
|
||||
end
|
||||
|
||||
def bio_cooked
|
||||
object.user_profile.bio_processed
|
||||
object.user_profile&.bio_processed
|
||||
end
|
||||
|
||||
def website
|
||||
object.user_profile.website
|
||||
object.user_profile&.website
|
||||
end
|
||||
|
||||
def website_name
|
||||
|
@ -246,7 +246,7 @@ class UserSerializer < BasicUserSerializer
|
|||
end
|
||||
|
||||
def location
|
||||
object.user_profile.location
|
||||
object.user_profile&.location
|
||||
end
|
||||
|
||||
def can_edit
|
||||
|
@ -300,7 +300,7 @@ class UserSerializer < BasicUserSerializer
|
|||
end
|
||||
|
||||
def bio_excerpt
|
||||
object.user_profile.bio_excerpt(350 , keep_newlines: true, keep_emoji_images: true)
|
||||
object.user_profile&.bio_excerpt(350 , keep_newlines: true, keep_emoji_images: true)
|
||||
end
|
||||
|
||||
def include_suspend_reason?
|
||||
|
@ -470,7 +470,7 @@ class UserSerializer < BasicUserSerializer
|
|||
end
|
||||
|
||||
def profile_view_count
|
||||
object.user_profile.views
|
||||
object.user_profile&.views
|
||||
end
|
||||
|
||||
def time_read
|
||||
|
|
|
@ -250,4 +250,17 @@ describe UserSerializer do
|
|||
expect(json[:user_api_keys][2][:id]).to eq(user_api_key_2.id)
|
||||
end
|
||||
end
|
||||
|
||||
context "with missing user profile" do
|
||||
fab!(:user) { Fabricate(:user) }
|
||||
|
||||
it "does not throw an error" do
|
||||
id = user.id
|
||||
UserProfile.delete(id)
|
||||
user_b = User.find(id)
|
||||
json = UserSerializer.new(user_b, scope: Guardian.new(user_b), root: false).as_json
|
||||
|
||||
expect(json[:bio_raw]).to eq nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue