Olá a todos,
Estou tentando criar uma automação personalizada que, quando uma consulta for marcada como solução/resolvida, o criador do tópico receberá uma mensagem privada (ou, alternativamente, uma nova resposta será criada na thread com uma mensagem predefinida - em ambos os casos, seria uma enquete).
Precisa ser uma automação personalizada, pois o script “enviar mensagens privadas” disponível no plugin de automação envia as mensagens privadas para quem quer que tenha enviado a resposta marcada como solução/resolvida (e não para a pessoa que criou o tópico, como pretendido no meu caso).
Abaixo está o script que criei para tentar postar uma nova resposta no tópico assim que uma resposta for marcada como solução (na amostra a seguir, não estou enviando a enquete como resposta, apenas dando a liberdade para o administrador escolher o que será retornado ou deixá-lo como padrão):
# frozen_string_literal: true
DiscourseAutomation::Scriptable.add(DiscourseAutomation::Scripts::REPLY_ON_SOLUTION) do
field :reply_text, component: :text
# field :answering_user, component: :user
field :once, component: :boolean
version 1
triggerables %i[:first_accepted_solution] if defined?(DiscourseSolved)
placeholder :sender_username
placeholder :word
script do |context, fields, automation|
topic = context["topic"]
# user = context["user"]
reply_text = fields.dig("reply_text", "value")
# Post a reply in the topic where a solution was marked
PostCreator.create!(
Discourse.system_user,
topic_id: topic.id,
raw: reply_text || "Uma solução foi marcada para este tópico!",
)
end
end
Mas não tenho certeza se deveria ser PostCreator.create!, PostCreator.reply, ou talvez algo mais. O que me leva a uma pergunta:
- Existe algum lugar documentado as palavras-chave a serem usadas durante a criação de um script de automação personalizado?
Com base na automação acima, assim que eu a aciono marcando uma resposta como solução, após 1 segundo recebo uma mensagem pop-up com uma mensagem de erro interno do servidor 500 na tela.
- Estou perdendo alguma coisa? Minha implantação foi feita usando devcontainers, na minha máquina local para fins de teste de desenvolvimento.
- O que é necessário fazer, após a criação do script personalizado? Talvez eu esteja perdendo algo nesta fase? Ou talvez seja um problema no próprio script?
- Existe algum lugar documentado os passos a serem seguidos após a conclusão do seu script? Por exemplo: quais arquivos precisam ser modificados para que tudo funcione perfeitamente? (Descobri da maneira difícil que precisei alterar o
client.en.ymlpara que o nome e a descrição corretos aparecessem na lista de automação)
Estou planejando dar uma tentativa, com base no script integrado enviar mensagens privadas, para alterar meu script para, em vez de criar uma resposta, enviar mensagens privadas, mas não tenho certeza sobre o seguinte:
- como eu marcaria a pessoa que criou o tópico e não a que teve a resposta marcada como solução?
Muito obrigado desde já por quaisquer dicas e ajuda.