Reordenar regras
A ordem inteira numa só chamada, porque uma lista de regras só significa alguma coisa em ordem.
Executa a chamada real contra o seu espaço de trabalho, com a sua própria chave.
POST /rules/reorder
A ordem inteira numa só chamada, porque uma lista de regras só significa alguma coisa em ordem.
Exemplo
Requer rules:write. O corpo nomeia TODAS as regras da ligação, pela ordem em que as quer avaliadas. Devolve a lista completa na sua nova ordem.
curl -X POST "$OE/rules/reorder" -H "$AUTH" -H "Content-Type: application/json" \ -d '{ "ruleIds": ["rul_7f3a1c94…", "rul_2b81de07…", "rul_c40a95f2…"] }'{ "object": "list", "data": [ { "object": "rule", "id": "rul_7f3a1c94…", "name": "Receipts to their own label", "position": 0 }, { "object": "rule", "id": "rul_2b81de07…", "name": "Newsletters after hours", "position": 1 }, { "object": "rule", "id": "rul_c40a95f2…", "name": "Anything from the old domain", "position": 2 } ], "hasMore": false, "nextCursor": null}Uma lista parcial é incomplete_order, um 422, e nada se move. Aceitá-la significaria inventar posições para as regras que deixou de fora, e onde essas ficassem em relação às que nomeou seria um palpite nosso sobre a sua caixa de correio e não uma instrução sua.
Idempotente por construção: o corpo nomeia a ordem inteira, por isso enviá-lo duas vezes acaba no mesmo sítio. É seguro repetir e seguro correr a partir de um script que não conhece a ordem atual.
Todas as posições são reescritas numa só instrução dentro de uma transação, por isso não há momento nenhum em que duas regras partilhem uma posição ou a lista esteja meio renumerada.
A ordem não é cosmética. Decide qual de duas regras nomeia a pasta onde uma mensagem acaba, e onde uma regra com stopProcessing corta a lista.