evaluateTriggers method
Evaluate triggers and get matching widgets.
On network failure, returns the last cached trigger evaluation when a cache has been configured. Throws if there is no cache fallback.
Implementation
Future<List<WidgetEntry>> evaluateTriggers(TriggerContext context) async {
const cacheKey = 'evaluateTriggers';
try {
final uri = Uri.parse('$baseUrl/api/widgets/evaluate');
final response = await _client.post(
uri,
headers: _postHeaders,
body: json.encode(context.toJson()),
);
_checkResponse(response);
await cache?.save(cacheKey, response.body);
return WidgetResponse.fromJson(
json.decode(response.body) as Map<String, dynamic>)
.widgets;
} catch (_) {
final cached = await cache?.load(cacheKey);
if (cached != null) return cached;
rethrow;
}
}