Pular para o conteúdo

Chamadas

O Cinderace usa parâmetros posicionais para ficar próximo da URL da API e evitar objetos de opções gigantes.

A ordem é: parâmetros de rota, query e settings.

// GET /v1/address/cep/:cep
const cep = await sdk.address.getCep("86036260");
// GET /v1/user/password/recovery-methods?cpf=...
const methods = await sdk.auth.getRecoveryMethods({
cpf: "00000000000"
});
// GET /v1/raffles/:id?affiliate_id=...
const raffle = await sdk.raffles.getRaffle("uuid-do-sorteio", {
affiliate_id: "afiliado-1"
});

A ordem é: parâmetros de rota, body e settings. Parâmetros gerenciados pela SDK, como o UUID do carrinho, saem da assinatura.

// POST /v1/cart/:uuid/items (UUID automático)
await sdk.cart.addItems({
item: {
type: "RAFFLE_NUMBERS",
raffleUUID: "uuid-do-sorteio",
amount: 10
}
});
// PUT /v1/user/profile
await sdk.user.updateProfile({
name: "Maria Silva",
});

Para métodos que não são GET, a query fica em settings.query:

await sdk.raffles.getRaffle("uuid", {
affiliate_id: "afiliado-1"
});
await sdk.orders.createOrder("payment-id", body, {
query: {
utm_source: "site"
}
});

Parâmetros de rota aparecem na assinatura na ordem da URL:

// GET /v1/orders/:payment/bonds
const bonds = await sdk.orders.getBonds("payment-id");
// GET /v1/user/raffles/:uuid/bonds
const myBonds = await sdk.raffles.getBonds("raffle-uuid");
await sdk.user.getProfile({
headers: {
"x-trace-id": "abc-123"
},
signal: controller.signal
});
Campo Para que serve
query Query string em métodos não-GET.
headers Headers extras só daquela chamada.
signal AbortSignal para cancelar a requisição.

Toda resposta fora de 2xx vira LMSdkError:

import { LMSdkError } from "@luckymaker/sdk-core";
try {
await sdk.raffles.getRaffle("uuid-inexistente");
} catch (error) {
if (error instanceof LMSdkError) {
console.log(error.status); // 404
console.log(error.code); // código do backend
console.log(error.body); // envelope completo
}
}