Reutilização de `external_id` após a exclusão de um Tópico

Estamos usando o recurso external_id para a criação automática de Tópicos em nossa integração. Observo, no entanto, que se deletarmos um Tópico, não podemos criar um novo com o mesmo external_id e, em vez disso, recebemos o erro:

{'action': 'create_post', 'errors': ['External has already been taken']}

É possível reutilizar o mesmo external_id após um Tópico que o utilizou ser deletado?

Estou ciente de uma solução alternativa discutida em outro lugar usando campos personalizados em objetos de Usuário, no entanto, objetos de Tópico não parecem suportar campos personalizados. Existe uma maneira?

Isso ocorre porque os tópicos excluídos são marcados como excluídos, não removidos do banco de dados. Querer reassociar um ID a outro tópico parece uma má ideia (mas você não perguntou). Você pode forçar o tópico a ser realmente excluído (talvez Introduzindo funcionalidade de exclusão permanente de postagens seja como).

Olá @pfaffman
Muito obrigado pela sugestão e pelo incentivo para pensar mais sobre a reutilização de external_id em geral.

1 curtida

A menos que esses inteiros sejam realmente caros? :thinking:

(Fico feliz que pareci útil em vez de sarcástico!) Espero que você encontre uma boa solução.

O desafio é que o valor que estamos usando para o external_id do Tópico é difícil de alterar (operação manual) devido a uma limitação no aplicativo com o qual estamos integrando (CatalogIt - expõe uma API somente leitura). Frequentemente, excluímos e recriamos automaticamente os Tópicos durante o desenvolvimento (é tudo o que a integração faz - cria tópicos de discussão para itens no CatalogIt quando um usuário clica em um link “discutir este item”), forçando-nos a alterar esse valor a cada vez. Se o valor não for alterado após a exclusão do tópico e um usuário clicar no link “discutir este item” mais tarde, encontramos o erro “external already taken”.

Talvez arquivar em vez de excluir seja uma ideia melhor, ou talvez haja um mecanismo de ocultar/mostrar no qual possamos nos apoiar. Não estou familiarizado com o Discourse, alguma pesquisa é necessária, vou investigar e ver o que consigo encontrar.

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