updateOrgConfig method
Implementation
Future<void> updateOrgConfig(
String orgId, {
required String key,
required Map<String, dynamic> config,
}) async {
emit(state.startLoading(updateOrgConfigLoading));
final org = state.organizations.firstWhere(
(org) => org.orgId == orgId,
);
final orgConfig = Map<String, dynamic>.from(org.config);
orgConfig[key] = config;
try {
final orgConfigData = jsonEncode(orgConfig);
await provider.updateOrg(
orgId: orgId,
config: orgConfigData,
);
emit(state.copyWith(
organizations: state.organizations.map((o) {
if (o.orgId == orgId) {
return o.copyWith(config: jsonDecode(orgConfigData));
}
return o;
}).toList(),
));
} on OrgServiceError catch (_) {
emit(
state.addMessage(
Message.error(
_localizations.updateOrgConfigError,
),
),
);
} catch (e) {
_logger.severe('Error updating organization config: $e');
emit(
state.addMessage(Message.error(
_localizations.unknownError,
)),
);
} finally {
emit(state.endLoading(updateOrgConfigLoading));
}
}