DEV: Fix n+1 from event finder query
This commit is contained in:
parent
b6ea7363d0
commit
f0061a676d
|
|
@ -10,7 +10,8 @@ module DiscoursePostEvent
|
||||||
events =
|
events =
|
||||||
DiscoursePostEvent::Event
|
DiscoursePostEvent::Event
|
||||||
.select("discourse_post_event_events.*, dcped.starts_at")
|
.select("discourse_post_event_events.*, dcped.starts_at")
|
||||||
.joins(post: :topic)
|
.joins(post: [:user, { topic: {} }])
|
||||||
|
.includes(post: { user: {}, topic: {} })
|
||||||
.merge(Post.secured(guardian))
|
.merge(Post.secured(guardian))
|
||||||
.merge(topics.or(pms).distinct)
|
.merge(topics.or(pms).distinct)
|
||||||
.joins(
|
.joins(
|
||||||
|
|
|
||||||
|
|
@ -325,5 +325,22 @@ module DiscoursePostEvent
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "for upcoming events" do
|
||||||
|
it "returns all events for all categories" do
|
||||||
|
category1 = Fabricate(:category)
|
||||||
|
category2 = Fabricate(:category)
|
||||||
|
topic1 = Fabricate(:topic, category: category1)
|
||||||
|
topic2 = Fabricate(:topic, category: category2)
|
||||||
|
event_1 = Fabricate(:event, post: Fabricate(:post, post_number: 1, topic: topic1))
|
||||||
|
event_2 = Fabricate(:event, post: Fabricate(:post, post_number: 1, topic: topic2))
|
||||||
|
|
||||||
|
get "/discourse-post-event/events.json"
|
||||||
|
|
||||||
|
expect(response.status).to eq(200)
|
||||||
|
events = response.parsed_body["events"]
|
||||||
|
expect(events.map { |e| e["id"] }).to match_array([event_1.id, event_2.id])
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue