Olá,
Estou desenvolvendo um plugin que filtra todos os tópicos com base na origem do post e no grupo ao qual o usuário que visualiza o tópico pertence. O caso de uso aqui é ter uma equipe de suporte em diferentes países atendendo a perguntas provenientes de suas próprias regiões.
Sou um iniciante na criação de plugins para Discourse e ainda estou aprendendo como fazer isso. A localização dos tópicos será tratada pelo plugin de localizações disponível em Locations Plugin 🌍.
Além disso, adicionarei os usuários que precisam dessa visualização filtrada a um grupo com um nome como NA_queue ou EU_queue.
O plugin verificará se o usuário está logado e se o grupo principal está definido. Caso positivo, ele filtrará todos os tópicos para corresponder à fila à qual o usuário atual pertence.
Estou pensando que isso poderia ser feito com algo semelhante ao código a seguir:
after_initialize do
require_dependency ‘topic_query’
# Se estiver logado e com grupo principal definido
# É necessário obter o grupo principal do usuário
# É necessário obter a localização do tópico
TopicQuery.add_custom_filter(:location) do |results, topic_query|
filter = "ALGUMA CONSULTA SQL AQUI"
results = results.joins("{filter}")
results
end
Essa é uma boa abordagem para o meu problema?
Além disso, alguém tem sugestões sobre como seria a consulta SQL ou como obter essas duas informações comentadas?