Saltar para o conteúdo principal

Erros

Todo o erro que o SDK lança estende PlaneError, e toda a classe abaixo é exportada na raiz do pacote.

ErroLançado porQuando
PlaneApiErrorv2a API respondeu com um erro: um problem detail RFC 9457
NoMatchFoundErrorv2uma procura findBy* não encontrou nada
MultipleMatchesFoundErrorv2uma procura findBy* encontrou mais de uma linha
PlaneNetworkErrorv2o pedido nunca chegou a um servidor: ligação recusada, falha de DNS, timeout, …
MissingPathIdErrorv2não é possível construir o URL porque falta um id de caminho
HttpErrorv1um pedido v1 falhou: o código de estado, o corpo da resposta e os cabeçalhos da resposta
AttachmentTooLargeErrorv1workItems.attachments.download excedeu o respetivo maxBytes

Os sete estendem PlaneError diretamente. Em particular, os erros de procura não são subclasses de PlaneApiError, pelo que capturar apenas esse não os captura.

PlaneApiError​

PlaneApiError transporta o problem detail em .status, .type, .code, .detail e .errors, sendo este último os erros de validação por campo, quando o servidor os envia.

import { PlaneApiError, PlaneNetworkError } from "@hoyasumii/plane";

try {
await client.v2.workspaces.projects.states.create("acme", "ENG", { name: "", color: "#000000" });
} catch (error) {
if (error instanceof PlaneApiError) {
console.log(error.status, error.code, error.detail, error.errors);
} else if (error instanceof PlaneNetworkError) {
console.log("unreachable:", error.message, error.cause);
} else {
throw error;
}
}

Uma escrita em lote responde HTTP 200 mesmo quando linhas falham. v2.raiseForFailures(result) transforma uma falha num PlaneApiError (veja Memberships e escritas em lote).