Alterar o status do tópico via API para pinned-global não funciona

Estou trabalhando em um script Python que usa a API do Discourse para definir o status de uma postagem como ‘pinned-globally’, seguindo a documentação da API.

A solicitação para ‘pinned-globally’ falha com o código de retorno 400, enquanto a solicitação com o parâmetro de status definido como ‘pinned’ funciona perfeitamente (ou seja, consigo ver a postagem fixada localmente).
Este é o trecho do meu código:

apiWebsite = '<my_website_URL>'
apiKey = '<secret>'
apiUsername = '<secret>'

headers = {
    'Api-Key': apiKey,
    'Api-Username': apiUsername
}


# Esta solicitação funciona OK
# Fixa a mesma postagem localmente
payload = {
    'status': 'pinned',
    'enabled': 'true',
    'until': '2019-11-25T08:00:00'
}
u = requests.put(apiWebsite + '/t/29082/status', headers=headers, data=payload)
print(u.status_code)

Depois de definir o status fixado de volta para falso, tento fixá-lo globalmente assim.

# Esta solicitação NÃO FUNCIONA
# Fixa o mesmo tópico globalmente
payload = {
    'status': 'pinned-globally',
    'enabled': 'true',
    'until': '2019-11-25T08:00:00'
}
u = requests.put(apiWebsite + '/t/29082/status', headers=headers, data=payload)
print(u.status_code)

Estou esquecendo algo óbvio ou é um bug genuíno?

P.S. O usuário tem privilégios suficientes.

2 curtidas

Você não pode fixar o mesmo tópico global e localmente ao mesmo tempo. Você pode escolher um ou outro.

1 curtida

Olá David,
claro, eu apenas coloquei o código assim para mostrar como as duas solicitações diferem.
Vou alterar a primeira postagem para deixar mais claro.

1 curtida

Ah, ótimo :ok_hand:. Analisando o código, vejo isso, o que causaria um erro 400

Acho que você precisa de pinned_globally em vez de pinned-globally. Pode tentar isso e ver se funciona? Parece que há um erro de digitação na nossa documentação da API — vou corrigir.

Edição: corrigido em Correct pinned_globally in topic status documentation · discourse/discourse_api_docs@fcf0d5f · GitHub

5 curtidas

Confirmado! :slight_smile:
Muito obrigado! :clap:

3 curtidas