Criei um Tópico (usando a API REST) com o campo “external_id”.
Excluí esse Tópico. Presumo que o Tópico ainda esteja no Banco de Dados, mas oculto dos usuários.
Tentei criar o MESMO Tópico com o mesmo “external_id”, e recebo “External has already been taken”.
Se o Tópico é excluído do ponto de vista do usuário, então o usuário deveria poder criar um novo Tópico com os mesmos dados, mas por que isso não está acontecendo? Parece não haver como usar o mesmo “external_id”. Parece um bug.
2022/10/12 12:33:32 resp: &{Status:404 Not Found StatusCode:404 Proto:HTTP/2.0 ProtoMajor:2 ProtoMinor:0 Header:map[Content-Type:[application/json; charset=utf-8] Date:[Wed, 12 Oct 2022 10:33:32 GMT] Referrer-Policy:[strict-origin-when-cross-origin] Server:[nginx] Vary:[Accept-Encoding] X-Content-Type-Options:[nosniff] X-Discourse-Route:[topics/show_by_external_id] X-Discourse-Username:[mohan43u] X-Download-Options:[noopen] X-Frame-Options:[SAMEORIGIN] X-Permitted-Cross-Domain-Policies:[none] X-Request-Id:[26b86048-937c-451c-ac0c-b23dbcd3c8ca] X-Runtime:[0.013603] X-Xss-Protection:[0]] Body:0xc000183bc0 ContentLength:-1 TransferEncoding:[] Close:false Uncompressed:true Trailer:map[] Request:0xc00030a800 TLS:0xc0000d22c0}
2022/10/12 12:33:32 req: &{Method:GET URL:https://forums.tamillinuxcommunity.org/t/external_id/7N69MKNwQAs.json Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Api-Key:[] Api-Username:[mohan43u]] Body:<nil> GetBody:<nil> ContentLength:0 TransferEncoding:[] Close:false Host:forums.tamillinuxcommunity.org Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr: RequestURI: TLS:<nil> Cancel:<nil> Response:<nil> ctx:0xc0000260b8}
2022/10/12 12:33:32 {"errors":["The requested URL or resource could not be found."],"error_type":"not_found"}
2022/10/12 12:33:32 uploading https://www.youtube.com/watch?v=7N69MKNwQAs
2022/10/12 12:33:32 {"title":"[Youtube] ஆண்ட்ராய்டுக்கான கட்டற்ற மென்பொருள் | FOSS for Android | F-Droid | Tamil","raw":"https://www.youtube.com/watch?v=7N69MKNwQAs\nஇந்த காணொளியில் F-Droid எவ்வாறு பயன்படுத்துவது? அதன் பயன் என்ன ? - என்பதை காண்போம்.\n\nகாணொளி வழங்கியவர்: \nமணிமாறன், விழுப்புரம் கட்டற்ற மென்பொருள் குழுமம்\n\nF-Droid: http://fdroid.org/\n\n#fdroid #fossforandroid #tamil #android #vglug","category":3,"external_id":"7N69MKNwQAs"}
2022/10/12 12:33:33 failed to create Topic: https://www.youtube.com/watch?v=7N69MKNwQAs
2022/10/12 12:33:33 err: <nil>
2022/10/12 12:33:33 resp: &{Status:422 Unprocessable Entity StatusCode:422 Proto:HTTP/2.0 ProtoMajor:2 ProtoMinor:0 Header:map[Cache-Control:[no-cache, no-store] Content-Type:[application/json; charset=utf-8] Date:[Wed, 12 Oct 2022 10:33:33 GMT] Referrer-Policy:[strict-origin-when-cross-origin] Server:[nginx] X-Content-Type-Options:[nosniff] X-Discourse-Route:[posts/create] X-Discourse-Username:[mohan43u] X-Download-Options:[noopen] X-Frame-Options:[SAMEORIGIN] X-Permitted-Cross-Domain-Policies:[none] X-Request-Id:[217f7585-269a-48b3-ac5e-215e02e76bdb] X-Runtime:[0.060606] X-Xss-Protection:[0]] Body:{cs:0xc00032c180} ContentLength:-1 TransferEncoding:[] Close:false Uncompressed:false Trailer:map[] Request:0xc000352100 TLS:0xc0000d22c0}
2022/10/12 12:33:33 req: &{Method:POST URL:https://forums.tamillinuxcommunity.org/posts.json Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Api-Key:[] Api-Username:[mohan43u] Content-Type:[application/json]] Body:0xc0005b0228 GetBody:0x6b0e40 ContentLength:733 TransferEncoding:[] Close:false Host:forums.tamillinuxcommunity.org Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr: RequestURI: TLS:<nil> Cancel:<nil> Response:<nil> ctx:0xc0000260b8}
2022/10/12 12:33:33 {"action":"create_post","errors":["Title has already been used","External has already been taken"]}
Acho que o que @RGJ estava se referindo: isso não é um bug, já que o Discourse usa uma abordagem de “exclusão lógica” por padrão. O external_id seria usado nesse contexto, o que é intencional.
O ponto é que tal tópico pode ser recuperado e, nesse caso, haveria dois tópicos com o mesmo ID externo. O ID externo deve ser único, em todos os tópicos, incluindo os excluídos. Como disse @maiki, isso é por design.
pode ser recuperado? como? Eu também quero recuperar esse tópico, meu problema vai desaparecer. mas não há como recuperar esse tópico.
Ou o discourse deveria permitir o uso do external_id que é usado em um tópico excluído ou deveria ter alguma forma de recuperar o tópico excluído com esse external_id. Eu não vejo nenhuma dessas duas coisas.
As postagens acima da minha indicam claramente que os tópicos podem ser restaurados. O fato de você parecer incapaz de restaurar este tópico específico não significa que seja um bug, seria uma questão de permissões ou configurações.
Você é administrador do fórum?
A propósito, por favor, pare de classificar isso como Bug.
Não, você não deve.
Por favor, use o modo de segurança e veja se consegue fazer isso. Se não conseguir, diga-nos em grande detalhe o que você vê em vez disso. Capturas de tela ajudarão.
/latest?status=deleted funciona para mim no meu site de teste?
Ahhh, entendi agora. O vídeo definitivamente ajudou. Sim, o título do tópico atualmente não aparece em tópicos excluídos dessa visualização. Isso foi levantado anteriormente, mas pode valer a pena dar uma olhada novamente.
Você poderia tentar [SeuSite]/latest?status=deleted e ver se consegue acessar o tópico a partir da lista de tópicos lá em vez disso?
E agora que encontrei o outro tópico, há também outra dica para navegar até o tópico excluído através dos seus logs de staff, se isso ajudar:
Eu acho que o seu está oculto pela CTA do banner do tópico de boas-vindas. Você poderia tentar ocultá-lo no seu console e ver se o tópico está atrás dele? (ou editar o tópico de boas-vindas para dispensar o banner )