changeCommunicationSetting function
Future<bool>
changeCommunicationSetting({
- required CommunicationType channel,
- required bool isAllowed,
- required BuildContext context,
- required Map<
String, bool> ? settings, - required Function communicationSettingsFunc,
Change Communication Settings
Implementation
Future<bool> changeCommunicationSetting(
{required CommunicationType channel,
required bool isAllowed,
required BuildContext context,
required Map<String, bool>? settings,
required Function communicationSettingsFunc}) async {
final Map<String, bool> variables = <String, bool>{
'allowEmail': settings!['allowEmail']!,
'allowWhatsApp': settings['allowWhatsApp']!,
'allowTextSMS': settings['allowText']!,
'allowPush': settings['allowPush']!,
};
final IGraphQlClient client = AppWrapperBase.of(context)!.graphQLClient;
variables[channel.toShortString()] = isAllowed;
/// fetch the data from the api
final Response result = await client.query(
setCommSettingsMutation,
variables,
);
final Map<String, dynamic> response = client.toMap(result);
// /// check if the response has timeout metadata. If yes, return an error to
// /// handled correctly
if (result.statusCode == 408) {
return false;
}
// // check for errors in the data here
if (client.parseError(response) != null) {
return false;
}
communicationSettingsFunc(communicationSettings: variables);
return true;
}