¿Recuperar temas basados en campo personalizado?

La forma de hacerlo es

  1. En el cliente: agrega un parámetro de consulta de tema usando api.addDiscoveryQueryParam

  2. En el servidor: filtra las consultas de tema por el parámetro usando add_custom_filter en la clase TopicQuery (consulta lib/topic_query)

La función de devolución de llamada add_custom_filter se verá más o menos así

::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
3 Me gusta