diff --git a/src/api/subscriber.js b/src/api/subscriber.js index 2693d301..1f1aa62b 100644 --- a/src/api/subscriber.js +++ b/src/api/subscriber.js @@ -35,19 +35,23 @@ export async function getPreferencesDefs (id) { } export async function setPreference (id, field, value) { - try { - await replacePreference(id, field, value) - } catch (err) { - const errCode = err.status + '' - if (errCode === '422') { - // eslint-disable-next-line no-useless-catch - try { - await addPreference(id, field, value) - } catch (innerErr) { - throw innerErr + if (value === undefined || value === null || value === '' || value === false || (Array.isArray(value) && !value.length)) { + await removePreference(id, field) + } else { + try { + await replacePreference(id, field, value) + } catch (err) { + const errCode = err.status + '' + if (errCode === '422') { + // eslint-disable-next-line no-useless-catch + try { + await addPreference(id, field, value) + } catch (innerErr) { + throw innerErr + } + } else { + throw err } - } else { - throw err } } } diff --git a/src/pages/CscPageCallBlockingPrivacy.vue b/src/pages/CscPageCallBlockingPrivacy.vue index 1bf53b70..ea8e2061 100644 --- a/src/pages/CscPageCallBlockingPrivacy.vue +++ b/src/pages/CscPageCallBlockingPrivacy.vue @@ -12,7 +12,7 @@