You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
550 lines
21 KiB
550 lines
21 KiB
import {
|
|
cfCreateOfficeHours,
|
|
cfCreateSourceSet,
|
|
cfCreateTimeSetDate,
|
|
cfCreateTimeSetDateRange,
|
|
cfCreateTimeSetWeekdays,
|
|
cfDeleteDestinationSet,
|
|
cfDeleteSourceSet,
|
|
cfDeleteTimeSet,
|
|
cfLoadDestinationSets,
|
|
cfLoadMappingsFull,
|
|
cfLoadSourceSets,
|
|
cfLoadTimeSets, cfUpdateOfficeHours,
|
|
cfUpdateSourceSet,
|
|
cfUpdateTimeSetDate,
|
|
cfUpdateTimeSetDateRange,
|
|
cfUpdateTimeSetWeekdays
|
|
} from 'src/api/call-forwarding'
|
|
import {
|
|
v4
|
|
} from 'uuid'
|
|
import {
|
|
patchReplace,
|
|
patchReplaceFull,
|
|
post, put, get, getList
|
|
} from 'src/api/common'
|
|
import _ from 'lodash'
|
|
|
|
const DEFAULT_RING_TIMEOUT = 60
|
|
const DEFAULT_PRIORITY = 0
|
|
const WAIT_IDENTIFIER = 'csc-cf-mappings-full'
|
|
const DEFAULT_CUSTOM_ANNOUNCEMENT_ID = 255 // TODO get from endpoint
|
|
|
|
function createDefaultDestination (destination) {
|
|
const payload = {
|
|
destination: destination || ' ',
|
|
priority: DEFAULT_PRIORITY,
|
|
timeout: DEFAULT_RING_TIMEOUT
|
|
}
|
|
if (destination === 'customhours') {
|
|
payload.announcement_id = DEFAULT_CUSTOM_ANNOUNCEMENT_ID
|
|
}
|
|
return payload
|
|
}
|
|
|
|
export async function loadMappingsFull ({ dispatch, commit, rootGetters }) {
|
|
dispatch('wait/start', WAIT_IDENTIFIER, { root: true })
|
|
const res = await cfLoadMappingsFull(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
mappings: res[0],
|
|
destinationSets: res[1].items,
|
|
sourceSets: res[2].items,
|
|
timeSets: res[3].items
|
|
})
|
|
dispatch('wait/end', WAIT_IDENTIFIER, { root: true })
|
|
}
|
|
|
|
export async function createMapping ({ dispatch, commit, state, rootGetters }, payload) {
|
|
dispatch('wait/start', WAIT_IDENTIFIER, { root: true })
|
|
let type = payload.type
|
|
if (payload.type === 'cfu' && state.mappings.cft && state.mappings.cft.length > 0) {
|
|
type = 'cft'
|
|
}
|
|
const mappings = _.cloneDeep(state.mappings[type])
|
|
const destinationSetId = await post({
|
|
resource: 'cfdestinationsets',
|
|
body: {
|
|
name: 'csc-' + v4(),
|
|
subscriber_id: rootGetters['user/getSubscriberId'],
|
|
destinations: [createDefaultDestination()]
|
|
}
|
|
})
|
|
mappings.push({
|
|
destinationset_id: destinationSetId
|
|
})
|
|
const res = await Promise.all([
|
|
patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: type,
|
|
value: mappings
|
|
}),
|
|
cfLoadDestinationSets(rootGetters['user/getSubscriberId'])
|
|
])
|
|
commit('dataSucceeded', {
|
|
mappings: res[0],
|
|
destinationSets: res[1].items
|
|
})
|
|
dispatch('wait/end', WAIT_IDENTIFIER, { root: true })
|
|
}
|
|
|
|
export async function deleteMapping ({ dispatch, commit, state, rootGetters }, payload) {
|
|
dispatch('wait/start', WAIT_IDENTIFIER, { root: true })
|
|
const mappings = _.cloneDeep(state.mappings[payload.type])
|
|
const updatedMappings = mappings.reduce(($updatedMappings, value, index) => {
|
|
if (index !== payload.index) {
|
|
$updatedMappings.push(value)
|
|
}
|
|
return $updatedMappings
|
|
}, [])
|
|
const patchRes = await patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: payload.type,
|
|
value: updatedMappings
|
|
})
|
|
await cfDeleteDestinationSet(payload.destinationset_id)
|
|
const destinationSets = await cfLoadDestinationSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
mappings: patchRes,
|
|
destinationSets: destinationSets.items
|
|
})
|
|
dispatch('wait/end', WAIT_IDENTIFIER, { root: true })
|
|
}
|
|
|
|
export async function toggleMapping ({ dispatch, commit, state, rootGetters }, payload) {
|
|
dispatch('wait/start', WAIT_IDENTIFIER, { root: true })
|
|
const updatedMappings = _.cloneDeep(state.mappings[payload.type])
|
|
updatedMappings[payload.index].enabled = !updatedMappings[payload.index].enabled
|
|
const patchRes = await patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: payload.type,
|
|
value: updatedMappings
|
|
})
|
|
commit('dataSucceeded', {
|
|
mappings: patchRes
|
|
})
|
|
dispatch('wait/end', WAIT_IDENTIFIER, { root: true })
|
|
}
|
|
|
|
export async function updateDestination ({ dispatch, commit, state, rootGetters }, payload) {
|
|
dispatch('wait/start', WAIT_IDENTIFIER, { root: true })
|
|
const destinations = _.cloneDeep(state.destinationSetMap[payload.destinationSetId].destinations)
|
|
destinations[payload.destinationIndex].destination = payload.destination
|
|
await patchReplace({
|
|
resource: 'cfdestinationsets',
|
|
resourceId: payload.destinationSetId,
|
|
fieldPath: 'destinations',
|
|
value: destinations
|
|
})
|
|
const destinationSets = await cfLoadDestinationSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
destinationSets: destinationSets.items
|
|
})
|
|
dispatch('wait/end', WAIT_IDENTIFIER, { root: true })
|
|
}
|
|
|
|
export async function addDestination ({ dispatch, commit, state, rootGetters }, payload) {
|
|
dispatch('wait/start', WAIT_IDENTIFIER, { root: true })
|
|
const destinations = _.cloneDeep(state.destinationSetMap[payload.destinationSetId].destinations)
|
|
destinations.push(createDefaultDestination(payload.destination))
|
|
await patchReplace({
|
|
resource: 'cfdestinationsets',
|
|
resourceId: payload.destinationSetId,
|
|
fieldPath: 'destinations',
|
|
value: destinations
|
|
})
|
|
const destinationSets = await cfLoadDestinationSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
destinationSets: destinationSets.items
|
|
})
|
|
dispatch('wait/end', WAIT_IDENTIFIER, { root: true })
|
|
}
|
|
|
|
export async function rewriteDestination ({ dispatch, commit, state, rootGetters }, destination) {
|
|
try {
|
|
const req = await post({
|
|
resource: 'applyrewrites',
|
|
body: {
|
|
direction: 'callee_in',
|
|
subscriber_id: rootGetters['user/getSubscriberId'],
|
|
numbers: [_.trim(destination)]
|
|
}
|
|
})
|
|
return req.result
|
|
} catch (err) {
|
|
return destination
|
|
}
|
|
}
|
|
|
|
export async function removeDestination ({ dispatch, commit, state, rootGetters }, payload) {
|
|
dispatch('wait/start', WAIT_IDENTIFIER, { root: true })
|
|
const destinations = _.cloneDeep(state.destinationSetMap[payload.destinationSetId].destinations)
|
|
const updatedDestinations = destinations.reduce(($updatedDestinations, value, index) => {
|
|
if (index !== payload.destinationIndex) {
|
|
$updatedDestinations.push(value)
|
|
}
|
|
return $updatedDestinations
|
|
}, [])
|
|
await patchReplace({
|
|
resource: 'cfdestinationsets',
|
|
resourceId: payload.destinationSetId,
|
|
fieldPath: 'destinations',
|
|
value: updatedDestinations
|
|
})
|
|
const destinationSets = await cfLoadDestinationSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
destinationSets: destinationSets.items
|
|
})
|
|
dispatch('wait/end', WAIT_IDENTIFIER, { root: true })
|
|
}
|
|
|
|
export async function updateDestinationTimeout ({ dispatch, commit, state, rootGetters }, payload) {
|
|
dispatch('wait/start', WAIT_IDENTIFIER, { root: true })
|
|
const destinations = _.cloneDeep(state.destinationSetMap[payload.destinationSetId].destinations)
|
|
destinations[payload.destinationIndex].timeout = payload.destinationTimeout
|
|
await patchReplace({
|
|
resource: 'cfdestinationsets',
|
|
resourceId: payload.destinationSetId,
|
|
fieldPath: 'destinations',
|
|
value: destinations
|
|
})
|
|
const destinationSets = await cfLoadDestinationSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
destinationSets: destinationSets.items
|
|
})
|
|
dispatch('wait/end', WAIT_IDENTIFIER, { root: true })
|
|
}
|
|
|
|
export async function loadSourceSets ({ dispatch, commit, rootGetters }) {
|
|
dispatch('wait/start', 'csc-cf-sourcesets', { root: true })
|
|
const sourceSets = await cfLoadSourceSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
sourceSets: sourceSets.items
|
|
})
|
|
dispatch('wait/end', 'csc-cf-sourcesets', { root: true })
|
|
}
|
|
|
|
export async function createSourceSet ({ dispatch, commit, rootGetters, state }, payload) {
|
|
try {
|
|
dispatch('wait/start', 'csc-cf-source-set-create', { root: true })
|
|
const sourceSetId = await cfCreateSourceSet(rootGetters['user/getSubscriberId'], payload)
|
|
const updatedMapping = _.cloneDeep(state.mappings[payload.mapping.type])
|
|
updatedMapping[payload.mapping.index].sourceset_id = sourceSetId
|
|
const updatedMappings = await patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: payload.mapping.type,
|
|
value: updatedMapping
|
|
})
|
|
const sourceSets = await cfLoadSourceSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
mappings: updatedMappings,
|
|
sourceSets: sourceSets.items
|
|
})
|
|
} finally {
|
|
dispatch('wait/end', 'csc-cf-source-set-create', { root: true })
|
|
}
|
|
}
|
|
|
|
export async function updateSourceSet ({ dispatch, commit, rootGetters, state }, payload) {
|
|
try {
|
|
dispatch('wait/start', 'csc-cf-source-set-create', { root: true })
|
|
await cfUpdateSourceSet(rootGetters['user/getSubscriberId'], payload)
|
|
const sourceSets = await cfLoadSourceSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
sourceSets: sourceSets.items
|
|
})
|
|
} finally {
|
|
dispatch('wait/end', 'csc-cf-source-set-create', { root: true })
|
|
}
|
|
}
|
|
|
|
export async function deleteSourceSet ({ dispatch, commit, rootGetters, state }, payload) {
|
|
try {
|
|
dispatch('wait/start', 'csc-cf-source-set-create', { root: true })
|
|
const updatedMapping = _.cloneDeep(state.mappings[payload.mapping.type])
|
|
updatedMapping[payload.mapping.index].sourceset_id = null
|
|
updatedMapping[payload.mapping.index].sourceset = null
|
|
const updatedMappings = await patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: payload.mapping.type,
|
|
value: updatedMapping
|
|
})
|
|
await cfDeleteSourceSet(payload.id)
|
|
const sourceSets = await cfLoadSourceSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
mappings: updatedMappings,
|
|
sourceSets: sourceSets.items
|
|
})
|
|
} finally {
|
|
dispatch('wait/end', 'csc-cf-source-set-create', { root: true })
|
|
}
|
|
}
|
|
|
|
export async function assignSourceSet ({ dispatch, commit, rootGetters, state }, payload) {
|
|
try {
|
|
dispatch('wait/start', 'csc-cf-source-set-create', { root: true })
|
|
const updatedMapping = _.cloneDeep(state.mappings[payload.mapping.type])
|
|
updatedMapping[payload.mapping.index].sourceset_id = payload.id
|
|
const updatedMappings = await patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: payload.mapping.type,
|
|
value: updatedMapping
|
|
})
|
|
commit('dataSucceeded', {
|
|
mappings: updatedMappings
|
|
})
|
|
} finally {
|
|
dispatch('wait/end', 'csc-cf-source-set-create', { root: true })
|
|
}
|
|
}
|
|
|
|
export async function unassignSourceSet ({ dispatch, commit, rootGetters, state }, payload) {
|
|
try {
|
|
dispatch('wait/start', 'csc-cf-source-set-create', { root: true })
|
|
const updatedMapping = _.cloneDeep(state.mappings[payload.mapping.type])
|
|
updatedMapping[payload.mapping.index].sourceset_id = null
|
|
updatedMapping[payload.mapping.index].sourceset = null
|
|
const updatedMappings = await patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: payload.mapping.type,
|
|
value: updatedMapping
|
|
})
|
|
commit('dataSucceeded', {
|
|
mappings: updatedMappings
|
|
})
|
|
} finally {
|
|
dispatch('wait/end', 'csc-cf-source-set-create', { root: true })
|
|
}
|
|
}
|
|
|
|
export async function createTimeSetDate ({ dispatch, commit, rootGetters, state }, payload) {
|
|
dispatch('wait/start', 'csc-cf-time-set-create', { root: true })
|
|
const timeSetId = await cfCreateTimeSetDate(rootGetters['user/getSubscriberId'], payload.date)
|
|
const updatedMapping = _.cloneDeep(state.mappings[payload.mapping.type])
|
|
updatedMapping[payload.mapping.index].timeset_id = timeSetId
|
|
const updatedMappings = await patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: payload.mapping.type,
|
|
value: updatedMapping
|
|
})
|
|
const timeSets = await cfLoadTimeSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
mappings: updatedMappings,
|
|
timeSets: timeSets.items
|
|
})
|
|
dispatch('wait/end', 'csc-cf-time-set-create', { root: true })
|
|
}
|
|
|
|
export async function updateTimeSetDate ({ dispatch, commit, rootGetters, state }, payload) {
|
|
dispatch('wait/start', 'csc-cf-time-set-create', { root: true })
|
|
await cfUpdateTimeSetDate(payload.id, payload.date)
|
|
const timeSets = await cfLoadTimeSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
timeSets: timeSets.items
|
|
})
|
|
dispatch('wait/end', 'csc-cf-time-set-create', { root: true })
|
|
}
|
|
|
|
export async function deleteTimeSet ({ dispatch, commit, rootGetters, state }, payload) {
|
|
dispatch('wait/start', 'csc-cf-time-set-create', { root: true })
|
|
const updatedMapping = _.cloneDeep(state.mappings[payload.mapping.type])
|
|
updatedMapping[payload.mapping.index].timeset_id = null
|
|
updatedMapping[payload.mapping.index].timeset = null
|
|
const updatedMappings = await patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: payload.mapping.type,
|
|
value: updatedMapping
|
|
})
|
|
await cfDeleteTimeSet(payload.id)
|
|
const timeSets = await cfLoadTimeSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
mappings: updatedMappings,
|
|
timeSets: timeSets.items
|
|
})
|
|
dispatch('wait/end', 'csc-cf-time-set-create', { root: true })
|
|
}
|
|
|
|
export async function ringPrimaryNumber ({ commit, rootGetters, state }) {
|
|
const mappings = _.cloneDeep(state.mappings)
|
|
mappings.cft = mappings.cfu
|
|
mappings.cfu = []
|
|
mappings.cft_ringtimeout = 60
|
|
const updatedMappings = await put({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
body: mappings
|
|
})
|
|
commit('dataSucceeded', {
|
|
mappings: updatedMappings
|
|
})
|
|
}
|
|
|
|
export async function doNotRingPrimaryNumber ({ commit, rootGetters, state }) {
|
|
const mappings = _.cloneDeep(state.mappings)
|
|
mappings.cfu = mappings.cft
|
|
mappings.cft = []
|
|
mappings.cft_ringtimeout = null
|
|
const updatedMappings = await put({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
body: mappings
|
|
})
|
|
commit('dataSucceeded', {
|
|
mappings: updatedMappings
|
|
})
|
|
}
|
|
|
|
export async function updateRingTimeout ({ commit, rootGetters, state }, ringTimeout) {
|
|
const updatedMappings = await patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: 'cft_ringtimeout',
|
|
value: ringTimeout
|
|
})
|
|
commit('dataSucceeded', {
|
|
mappings: updatedMappings
|
|
})
|
|
}
|
|
|
|
export async function createTimeSetDateRange ({ dispatch, commit, rootGetters, state }, payload) {
|
|
dispatch('wait/start', 'csc-cf-time-set-create', { root: true })
|
|
const timeSetId = await cfCreateTimeSetDateRange(rootGetters['user/getSubscriberId'], payload.date)
|
|
const updatedMapping = _.cloneDeep(state.mappings[payload.mapping.type])
|
|
updatedMapping[payload.mapping.index].timeset_id = timeSetId
|
|
const updatedMappings = await patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: payload.mapping.type,
|
|
value: updatedMapping
|
|
})
|
|
const timeSets = await cfLoadTimeSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
mappings: updatedMappings,
|
|
timeSets: timeSets.items
|
|
})
|
|
dispatch('wait/end', 'csc-cf-time-set-create', { root: true })
|
|
}
|
|
|
|
export async function updateTimeSetDateRange ({ dispatch, commit, rootGetters, state }, payload) {
|
|
dispatch('wait/start', 'csc-cf-time-set-create', { root: true })
|
|
await cfUpdateTimeSetDateRange(payload.id, payload.date)
|
|
const timeSets = await cfLoadTimeSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
timeSets: timeSets.items
|
|
})
|
|
dispatch('wait/end', 'csc-cf-time-set-create', { root: true })
|
|
}
|
|
|
|
export async function createTimeSetWeekdays ({ dispatch, commit, rootGetters, state }, payload) {
|
|
dispatch('wait/start', 'csc-cf-time-set-create', { root: true })
|
|
const timeSetId = await cfCreateTimeSetWeekdays(rootGetters['user/getSubscriberId'], payload.weekdays)
|
|
const updatedMapping = _.cloneDeep(state.mappings[payload.mapping.type])
|
|
updatedMapping[payload.mapping.index].timeset_id = timeSetId
|
|
const updatedMappings = await patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: payload.mapping.type,
|
|
value: updatedMapping
|
|
})
|
|
const timeSets = await cfLoadTimeSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
mappings: updatedMappings,
|
|
timeSets: timeSets.items
|
|
})
|
|
dispatch('wait/end', 'csc-cf-time-set-create', { root: true })
|
|
}
|
|
|
|
export async function updateTimeSetWeekdays ({ dispatch, commit, rootGetters, state }, payload) {
|
|
dispatch('wait/start', 'csc-cf-time-set-create', { root: true })
|
|
await cfUpdateTimeSetWeekdays(payload.id, payload.weekdays)
|
|
const timeSets = await cfLoadTimeSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
timeSets: timeSets.items
|
|
})
|
|
dispatch('wait/end', 'csc-cf-time-set-create', { root: true })
|
|
}
|
|
|
|
export async function createOfficeHours ({ dispatch, commit, rootGetters, state }, payload) {
|
|
dispatch('wait/start', 'csc-cf-time-set-create', { root: true })
|
|
const timeSetId = await cfCreateOfficeHours(rootGetters['user/getSubscriberId'], payload.times)
|
|
const updatedMapping = _.cloneDeep(state.mappings[payload.mapping.type])
|
|
updatedMapping[payload.mapping.index].timeset_id = timeSetId
|
|
const updatedMappings = await patchReplaceFull({
|
|
resource: 'cfmappings',
|
|
resourceId: rootGetters['user/getSubscriberId'],
|
|
fieldPath: payload.mapping.type,
|
|
value: updatedMapping
|
|
})
|
|
if (payload.id) {
|
|
await cfDeleteTimeSet(payload.id)
|
|
}
|
|
const timeSets = await cfLoadTimeSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
mappings: updatedMappings,
|
|
timeSets: timeSets.items
|
|
})
|
|
dispatch('wait/end', 'csc-cf-time-set-create', { root: true })
|
|
}
|
|
|
|
export async function updateOfficeHours ({ dispatch, commit, rootGetters, state }, payload) {
|
|
dispatch('wait/start', 'csc-cf-time-set-create', { root: true })
|
|
await cfUpdateOfficeHours(payload.id, payload.times)
|
|
const timeSets = await cfLoadTimeSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
timeSets: timeSets.items
|
|
})
|
|
dispatch('wait/end', 'csc-cf-time-set-create', { root: true })
|
|
}
|
|
|
|
export async function loadAnnouncements ({ dispatch, commit }) {
|
|
try {
|
|
const announcements = await getList({
|
|
resource: 'soundhandles',
|
|
all: true,
|
|
params: {
|
|
group: 'custom_announcements'
|
|
}
|
|
})
|
|
commit('setAnnouncements', announcements.items.map((item) => { return { label: item.handle, value: item.id } }))
|
|
} catch (err) {
|
|
commit('setAnnouncements', {
|
|
announcements: []
|
|
})
|
|
}
|
|
}
|
|
|
|
export async function getAnnouncementById ({ dispatch, commit, rootGetters, state }, announcementId) {
|
|
const announcement = await get({
|
|
resource: 'soundhandles',
|
|
resourceId: announcementId
|
|
})
|
|
return {
|
|
value: announcement.id,
|
|
label: announcement.handle
|
|
}
|
|
}
|
|
|
|
export async function updateAnnouncement ({ dispatch, commit, rootGetters, state }, payload) {
|
|
const destinations = _.cloneDeep(state.destinationSetMap[payload.destinationSetId].destinations)
|
|
destinations[payload.destinationIndex].announcement_id = payload.announcementId
|
|
await patchReplace({
|
|
resource: 'cfdestinationsets',
|
|
resourceId: payload.destinationSetId,
|
|
fieldPath: 'destinations',
|
|
value: destinations
|
|
})
|
|
const destinationSets = await cfLoadDestinationSets(rootGetters['user/getSubscriberId'])
|
|
commit('dataSucceeded', {
|
|
destinationSets: destinationSets.items
|
|
})
|
|
}
|