Frequentemente uso a ação POST /t/:topic_id/timer para alterar categorias de tópicos (de privados para públicos).
Isso funciona bem se o parâmetro time estiver no futuro, mas se eu usar o horário atual (ou um horário passado por engano), recebo uma resposta válida, mas a mudança de categoria não ocorre instantaneamente.
Geralmente leva de 5 a 10 minutos, o que pode ser confuso (estou assumindo que isso se deve à frequência de um loop interno de polling).
Aqui está um exemplo de solicitação (com horário passado) e resposta:
# Solicitação
POST /t/4378/timer HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Api-Key: REDACTED
Api-Username: REDACTED
Connection: keep-alive
Content-Length: 96
Content-Type: application/json
Host: REDACTED
User-Agent: HTTPie/2.2.0
{
"category_id": "54",
"status_type": "publish_to_category",
"time": "2020-10-26 08:09:45+01:00"
}
# Resposta
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Encoding: gzip
Content-Type: application/json; charset=utf-8
Date: Mon, 26 Oct 2020 07:09:46 GMT
Referrer-Policy: strict-origin-when-cross-origin
Server: nginx/1.18.0 (Ubuntu)
Strict-Transport-Security: max-age=63072000;
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Discourse-Route: topics/timer
X-Discourse-Username: REDACTED
X-Download-Options: noopen
X-Frame-Options: SAMEORIGIN
X-Permitted-Cross-Domain-Policies: none
X-Request-Id: REDACTED
X-Runtime: 0.055819
X-XSS-Protection: 1; mode=block
{
"based_on_last_post": false,
"category_id": 54,
"closed": false,
"duration": null,
"execute_at": "2020-10-26T07:09:45.000Z",
"success": "OK"
}
Atualização: Eu pensava que isso fosse exclusivo da API, mas também pode ser um problema na interface do usuário, pois, embora não seja possível selecionar uma data no passado, é possível selecionar um horário no passado.
O comportamento é o mesmo: não há indicação de que um timer foi configurado, mas ele ainda dispara entre 5 e 10 minutos após ser criado.
