odoo_loyalty_app/lib/utils/safe_cast.dart

21 lines
545 B
Dart

/// Safely converts a dynamic value from Odoo JSON-RPC to a String.
/// Odoo returns `false` (boolean) for unset fields, which causes standard
/// Dart type casts (like `value as String?`) to crash.
String? safeString(dynamic value) {
if (value is String) {
return value;
}
return null;
}
/// Safely converts a dynamic value from Odoo JSON-RPC to a double.
double safeDouble(dynamic value) {
if (value is num) {
return value.toDouble();
}
if (value is String) {
return double.tryParse(value) ?? 0.0;
}
return 0.0;
}