FIX: add short_path to upload_serializer (#9417)
What problem I am trying to solve?
When an encrypted message is crafted and the image is added - discourse needs a hard refresh to display that image.
What is happening?
discourse-encrypt is trying to get an image from the cache and use
Why is it working after a hard refresh?
And lookup_urls method from backend is returning
TL;DR We should expose short path in upload serializer. I ensured that this serializer is used only when attachments are uploaded so it should not affect performance.
diff --git a/app/serializers/upload_serializer.rb b/app/serializers/upload_serializer.rb index 938ab5b..a04300b 100644 --- a/app/serializers/upload_serializer.rb +++ b/app/serializers/upload_serializer.rb @@ -11,6 +11,7 @@ class UploadSerializer < ApplicationSerializer :thumbnail_height, :extension, :short_url, + :short_path, :retain_hours, :human_filesize diff --git a/spec/serializers/upload_serializer_spec.rb b/spec/serializers/upload_serializer_spec.rb index 3865000..b0f5e64 100644 --- a/spec/serializers/upload_serializer_spec.rb +++ b/spec/serializers/upload_serializer_spec.rb @@ -14,6 +14,7 @@ RSpec.describe UploadSerializer do expect(json_data['height']).to eql upload.height expect(json_data['thumbnail_width']).to eql upload.thumbnail_width expect(json_data['thumbnail_height']).to eql upload.thumbnail_height + expect(json_data['short_path']).to eql upload.short_path end context "when the upload is secure" do
GitHub sha: c21df228