Contagem de postagens do usuário é zero no webhook para um usuário que tem postagens

Temos um webhook no evento “user_logged_in”. O Payload contém a propriedade post_count para o usuário que acabou de fazer login. Embora o usuário tenha escrito 2 posts, o payload lê post_count: 0. Isso parece um bug para mim.

O receptor do webhook precisa dessa estatística do usuário para decidir como proceder.

O único tópico semelhante que encontrei é este, pode estar relacionado, mas não fala sobre a mesma API: Category post_count not incrementing

1 curtida

Preciso me corrigir: a post_count não é sempre zero. Ao verificar com meu próprio usuário, a post_count era plausível (embora eu não saiba se é precisa ou não).

Mas há um usuário em nosso site, vamos chamá-lo de usuário nº 1234, para o qual o seguinte é válido:

  • SELECT * FROM posts WHERE user_id=1234 retorna duas entradas na tabela. Estas são as postagens que também estão listadas na página de atividade do perfil do usuário.
  • A carga útil do webhook, quando este usuário faz login ou logout, contém \"post_count\": 0.
1 curtida

Olá @dpb,

Testei e a contagem de posts não é atualizada em tempo real.

Minha suposição é que existe um job do Sidekiq que cuida disso periodicamente, mas não sei qual.
Parece que não há um job específico relacionado do Sidekiq :thinking:
Mas li que essa estatística é atualizada pelo menos uma vez por dia.

Uma solicitação GET para https://your-discourse.org/u/username.json retornará o número correto, no entanto.

Se você quiser um número confiável, faça uma solicitação assim após receber a carga útil do webhook.

1 curtida

Obrigado @Canapin por sugerir a solicitação GET para a API.

Bem, no nosso caso, as postagens estão lá há bem mais de um mês.

Talvez o componente que atualiza esse número tenha parado de funcionar em algum momento arbitrário durante uma das atualizações?

Testei, também não funciona. Contém as mesmas informações: post_count: 0

Talvez haja uma confusão entre “tópicos” e “posts”. Eu esperava que a criação de um novo tópico fosse apenas um tipo especial de post. A estrutura do banco de dados suporta isso.
Mas ao verificar as estatísticas do perfil do usuário, eles dizem algo como “2 tópicos criados, 0 posts criados”.
Então, talvez o “post_count” que recebo seja, na verdade, o número de respostas a tópicos em vez do número total de posts?
Por outro lado, há uma data “last_posted_at” que contém a data em que o último tópico foi criado. Então, pelo menos, há alguma inconsistência na nomenclatura aqui. Eu esperaria que o número “post_count” incluísse também os primeiros posts em novos tópicos.

De qualquer forma, seja este o comportamento pretendido ou não, não encontro um topic_count ou similar no JSON do usuário. Como descubro o número total de posts, incluindo novos tópicos?

Meu conhecimento de JSON é um pouco iniciante, mas consigo ver o topic_count em https://meta.discourse.org/u/dpb/summary.json

1 curtida