diff --git a/app/presenters/post_presenter.rb b/app/presenters/post_presenter.rb index 11c432229..f1c8c3979 100644 --- a/app/presenters/post_presenter.rb +++ b/app/presenters/post_presenter.rb @@ -28,12 +28,12 @@ class PostPresenter < BasePresenter author: PersonPresenter.new(@post.author).as_api_json, provider_display_name: @post.provider_display_name, interaction_counters: PostInteractionPresenter.new(@post, current_user).as_counters, - location: @post.post_location, + location: location_as_api_json, poll: PollPresenter.new(@post.poll, current_user).as_api_json, mentioned_people: build_mentioned_people_json, photos: build_photos_json, root: root_api_response - } + }.compact end def with_interactions @@ -192,4 +192,13 @@ class PostPresenter < BasePresenter def description message.try(:plain_text_without_markdown, truncate: 1000) end + + def location_as_api_json + location = @post.post_location + return if location.values.all?(&:nil?) + + location[:lat] = location[:lat].to_f + location[:lng] = location[:lng].to_f + location + end end diff --git a/spec/integration/api/posts_controller_spec.rb b/spec/integration/api/posts_controller_spec.rb index a9142c3bd..87949cdb3 100644 --- a/spec/integration/api/posts_controller_spec.rb +++ b/spec/integration/api/posts_controller_spec.rb @@ -723,8 +723,8 @@ describe Api::V1::PostsController do def confirm_location(location, ref_location) expect(location["address"]).to eq(ref_location[:address]) - expect(location["lat"]).to eq(ref_location[:lat]) - expect(location["lng"]).to eq(ref_location[:lng]) + expect(location["lat"]).to eq(ref_location[:lat].to_f) + expect(location["lng"]).to eq(ref_location[:lng].to_f) end def confirm_photos(photos, ref_photos)