Errores Y Logging
Clases de error, metadata segura y helpers de redacción para Toteat.
El SDK separa errores de caller, red, HTTP, JSON y dominio provider.
Clases De Error
| Error | Causa | Manejo recomendado |
|---|---|---|
PosValidationError | Input inválido antes de llamar al provider. | Corregir caller, devolver 400 o registrar bug interno. |
PosNetworkError | Timeout, abort o fallo antes de recibir respuesta. | Retry externo controlado o alerta operacional. |
PosHttpError | Provider respondió HTTP no exitoso. | Revisar status, rate limits o credenciales. |
PosJsonError | Provider respondió JSON inválido. | Tratar como incidente upstream. |
PosResponseError | Provider respondió JSON válido con ok: false. | Manejar como rechazo de dominio provider. |
Metadata Segura
Errores de request exponen:
providermethodpath
path no incluye query string. Esto evita filtrar xapitoken, xir, xil o xiu.
Redactar URLs
import { redactToteatUrl } from "@cartamatic/pos-sdk";
const safeUrl = redactToteatUrl(url);Redacta query params:
xapitokenxirxilxiu
Redactar Credenciales
import { redactToteatCredentials } from "@cartamatic/pos-sdk";
const safeCredentials = redactToteatCredentials({
restaurantId,
localId,
userId,
apiToken,
environment: "production"
});Redacta campos:
apiTokenrestaurantIdlocalIduserId
El valor usado es TOTEAT_REDACTED_VALUE, actualmente [REDACTED].
Logging Recomendado
try {
return await pos.catalog.getProducts({ activeProducts: true });
} catch (error) {
if (error instanceof PosHttpError) {
logger.warn("Toteat HTTP error", {
provider: error.provider,
method: error.method,
path: error.path,
status: error.status
});
}
throw error;
}No loggees configuración raw ni URLs sin pasar por helpers de redacción.