changeUserLanguage method
Returns true
if the user's language preference in the backend is changed to the language lang
.
Throws an InvalidLanguage if lang
is null
or incorrect language code.
Throws a NotLoggedInUser if the user is not logged in.
If successful, updates the lang field of the current sessionStatus.
Implementation
@override
Future<bool?> changeUserLanguage(String lang) async {
if (lang.trim().isEmpty || lang.trim().length > 2) {
throw InvalidLanguage();
}
final sessionStatusInfo = getSession();
if (sessionStatusInfo == null || sessionStatusInfo.loggedIn != true) {
throw NotLoggedInUser();
}
final response = await getCore().model.setValue(
User(), sessionStatusInfo.user, 'language', lang.toLowerCase());
if (response.isSuccess) {
sessionStatusInfo.lang = lang;
updateSession(
loggedIn: response.isSuccess, sessionStatus: sessionStatusInfo);
return sessionStatusInfo.loggedIn;
}
return false;
}