DEV: add topic_query_suggested_options modifier (#20893)

Add a modifier that will allow us to tune the results returned by suggested.

At the moment the modifier allows us to toggle including random results.
This was created for the discourse-ai module. It needs to switch off random
results when it returns related topics.

Longer term we can use it to toggle unread/new and other aspects.

This also demonstrates how to test the contract when adding modifiers.
This commit is contained in:
Sam
2023-03-31 09:03:15 +11:00
committed by GitHub
parent 068a36d354
commit 347681dd20
2 changed files with 36 additions and 1 deletions

View File

@@ -605,7 +605,16 @@ class TopicView
def suggested_topics
if @include_suggested
@suggested_topics ||= TopicQuery.new(@user).list_suggested_for(topic, pm_params: pm_params)
@suggested_topics ||=
begin
kwargs =
DiscoursePluginRegistry.apply_modifier(
:topic_view_suggested_topics_options,
{ include_random: true, pm_params: pm_params },
self,
)
TopicQuery.new(@user).list_suggested_for(topic, **kwargs)
end
else
nil
end