migrated the breaker system to MarianumConnect and refactored the API response to a rule-based model with support for version-specific blocks using maxBuild.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
|
||||
import '../../../../../api/mhsl/breaker/get_breakers/get_breakers_response.dart';
|
||||
import '../../../../../api/marianumconnect/queries/get_breakers/get_breakers_response.dart';
|
||||
import '../../../infrastructure/utility_widgets/loadable_hydrated_bloc/loadable_hydrated_bloc.dart';
|
||||
import '../../../infrastructure/utility_widgets/loadable_hydrated_bloc/loadable_hydrated_bloc_event.dart';
|
||||
import '../repository/breaker_repository.dart';
|
||||
@@ -40,13 +40,11 @@ class BreakerBloc
|
||||
final response = innerState?.response;
|
||||
if (response == null || _packageInfo == null) return null;
|
||||
|
||||
if (response.global.areas.contains(type)) return response.global.message;
|
||||
|
||||
final selfBuild = int.parse(_packageInfo!.buildNumber);
|
||||
for (final entry in response.regional.entries) {
|
||||
final affectedBuild = int.parse(entry.key.split('b')[1]);
|
||||
if (affectedBuild >= selfBuild && entry.value.areas.contains(type)) {
|
||||
return entry.value.message;
|
||||
final selfBuild = int.tryParse(_packageInfo!.buildNumber) ?? 0;
|
||||
for (final rule in response.rules) {
|
||||
if (!rule.areas.contains(type)) continue;
|
||||
if (rule.maxBuild == null || selfBuild <= rule.maxBuild!) {
|
||||
return rule.message;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user