La méthode à suivre est la suivante :
-
Côté client : ajoutez un paramètre de requête
topicen utilisantapi.addDiscoveryQueryParam -
Côté serveur : filtrez les requêtes
topicpar ce paramètre en utilisantadd_custom_filterdans la classeTopicQuery(voirlib/topic_query)
Le callback add_custom_filter ressemblera à ceci :
::TopicQuery.add_custom_filter(:field_name) do |topics, query|
if query.options[:field_name]
topics.where("topics.id in (
SELECT topic_id FROM topic_custom_fields
WHERE (name = 'field_name')
AND value = '#{query.options[:field_name]}'
)")
else
topics
end
end