API de notas de usuário do Discourse

Quero obter todas as notas de usuário para um usuário usando a API do Discourse. As notas são aplicadas com discourse-user-notes.

Usando Obter um usuário por id, posso ver o campo user_note_count. No entanto, não consigo encontrar o conteúdo da nota do usuário.

Quero anexar informações a um usuário, como o corpo de um e-mail ou os principais pontos de uma videoconferência que a equipe teve com o usuário. Espero usar os dados do PostgreSQL do Discourse em vez de criar um banco de dados duplicado com campos para notas.

Espero usar o discourse-user-notes existente, pois ele já está pronto.

Tenho um aplicativo desktop separado para a equipe que usa a API do Discourse e é escrito em Dart/Flutter usando requisições HTTP para se comunicar com o Discourse.

Não tenho experiência com Ruby.

Existe alguma maneira de obter informações deste arquivo que possa ser exposta como uma API HTTP?

discourse-user-notes/plugin.rb at main · discourse/discourse-user-notes · GitHub

2 curtidas

Recomendo que você use o plugin data explorer e Execute consultas do Data Explorer com a API do Discourse; ele permite gerar seu próprio endpoint de API (para recuperar dados do data explorer).

Você está solicitando como um usuário que pode ler essas notas?

1 curtida

Obrigado pela ajuda. Qual é a consulta que preciso executar para ver o conteúdo das notas do usuário?

Existe alguma maneira de ver os campos em que a nota é armazenada no código-fonte do plugin? Talvez eu possa exibir um custom_field para o usuário de alguma forma?

Eu não sei ler Ruby, mas talvez exista um campo chamado user_notes no Discourse em algum lugar que eu possa pesquisar com user.id e então exista um objeto notes com um campo raw?

Estou apenas adivinhando. Talvez eu extraia os usuários e armazene as notas em um banco de dados separado, não no Discourse. No entanto, eu gostaria de usar os dados no Discourse, se possível, pois será mais fácil anexar a nota a um usuário e postagem específicos.

      notes = notes_for(user.id)
      record = {
        id: SecureRandom.hex(16),
        user_id: user.id,
        raw: raw,
        created_by: created_by,
        created_at: Time.now
      }.merge(opts)

      notes << record
      ::PluginStore.set("user_notes", key_for(user.id), notes)

      user.custom_fields[COUNT_FIELD] = notes.size
      user.save_custom_fields

Estou extraindo a lista de usuários como administrador para ver quais usuários têm notas aplicadas a eles. Depois de identificar a lista de usuários com notas, quero exibir as notas em uma tabela para que a equipe possa responder a perguntas mais facilmente com o contexto do usuário.


Estou tentando usar /user_notes.json?user_id=2

1 curtida

Graças a @Falco, consegui obter as notas do usuário.

curl https://community.domain.com/admin/reports/user_notes.json \
  -H 'Api-Key: abcdefghijklmnop' \
  -H 'Api-Username: system'
4 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.