API заметок пользователей Discourse

Я хочу получить все заметки о пользователе через API Discourse. Заметки реализованы с помощью плагина discourse-user-notes.

Используя метод Получить пользователя по ID, я вижу поле user_note_count. Однако мне не удается найти содержимое самих заметок.

Я хочу прикреплять к пользователю информацию, например, текст письма или основные пункты видеоконференции, которую сотрудники провели с этим пользователем. Я надеюсь использовать данные PostgreSQL Discourse, вместо создания отдельной базы данных с полями для заметок.

Я хотел бы использовать существующий плагин discourse-user-notes, так как он уже готов.

У меня есть отдельное десктопное приложение для сотрудников, написанное на Dart/Flutter, которое использует API Discourse и отправляет HTTP-запросы для взаимодействия с ним.

У меня нет опыта работы с Ruby.

Есть ли способ получить информацию из этого файла, которая могла бы быть доступна через HTTP API?

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

Рекомендую использовать плагин Data Explorer и запускать запросы Data Explorer через API Discourse; это позволяет, хотя и с некоторыми ограничениями, создавать собственные конечные точки API (для получения данных из Data Explorer).

Вы выполняете запрос как пользователь, имеющий право читать эти заметки?

Спасибо за вашу помощь. Какой запрос мне нужно выполнить, чтобы увидеть содержимое заметок пользователей?

Есть ли способ увидеть поля, в которых хранятся заметки, из исходного кода плагина? Возможно, я как-то смогу отобразить custom_field для пользователя?

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

Я не знаю, как читать Ruby, но, возможно, в каком-то месте Discourse есть поле под названием user_notes, которое я могу искать по user.id, и тогда там будет объект notes с полем raw?

Я просто предполагаю. Возможно, мне просто придётся извлечь пользователей и хранить заметки в отдельной базе данных, а не в Discourse. Однако, если это возможно, я бы хотел использовать данные из Discourse, так как это упростит привязку заметки к конкретному пользователю и сообщению.

      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

Я получаю список пользователей как администратор, чтобы увидеть, к каким пользователям применены заметки. После того как я определю список пользователей с заметками, я хочу отобразить эти заметки в таблице, чтобы сотрудники могли легче отвечать на вопросы, имея фоновую информацию о пользователе.


Я пытаюсь использовать /user_notes.json?user_id=2

Благодаря @Falco я смог получить user_notes.

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