Errores
Codigos de error y manejo de excepciones.
Formato de error
{
"success": false,
"error": {
"message": "Descripcion del error",
"code": "ERROR_CODE"
}
}
Codigos de error
Autenticacion
| Codigo | HTTP | Descripcion |
|---|
MISSING_API_KEY | 401 | Falta el header Authorization |
MISSING_ORG_ID | 401 | Falta el header X-Org-Id |
INVALID_API_KEY | 401 | API key invalida o desactivada |
API_KEY_EXPIRED | 401 | API key expirada |
ORG_NOT_FOUND | 404 | Organizacion no encontrada |
Validacion
| Codigo | HTTP | Descripcion |
|---|
VALIDATION_ERROR | 400 | Datos de entrada invalidos |
NOT_FOUND | 404 | Recurso no encontrado |
Campanas
| Codigo | HTTP | Descripcion |
|---|
CAMPAIGN_INACTIVE | 400 | La campana no esta activa |
CAMPAIGN_NOT_FOUND | 404 | Campana no encontrada |
Codigos
| Codigo | HTTP | Descripcion |
|---|
CODE_NOT_FOUND | 404 | Codigo no existe |
CODE_INACTIVE | 400 | Codigo desactivado |
CODE_EXPIRED | 400 | Codigo expirado |
CODE_MAX_USES_REACHED | 400 | Sin usos restantes |
Puntos
| Codigo | HTTP | Descripcion |
|---|
INSUFFICIENT_BALANCE | 400 | Saldo de puntos insuficiente |
POINTS_NOT_ENABLED | 400 | Sistema de puntos no habilitado |
Manejo en Flutter
try {
await SouthGamesSDK.redeem(code: 'INVALID');
} on SouthGamesException catch (e) {
print(e.message); // "Codigo no encontrado"
print(e.code); // "CODE_NOT_FOUND"
print(e.statusCode); // 404
switch (e.code) {
case 'CODE_NOT_FOUND':
showError('El codigo no existe');
break;
case 'CODE_EXPIRED':
showError('El codigo ya expiro');
break;
case 'CODE_MAX_USES_REACHED':
showError('El codigo ya fue usado');
break;
default:
showError('Error: ${e.message}');
}
}
Manejo en HTTP
const response = await fetch(url, { headers });
const data = await response.json();
if (!data.success) {
console.error(`Error ${data.error.code}: ${data.error.message}`);
}