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.
245 lines
5.6 KiB
245 lines
5.6 KiB
import {
|
|
del,
|
|
get,
|
|
getList, patchReplace, post, putMinimal
|
|
} from 'src/api/common'
|
|
import {
|
|
v4
|
|
} from 'uuid'
|
|
import _ from 'lodash'
|
|
import { showGlobalError } from 'src/helpers/ui'
|
|
|
|
export async function cfLoadMappings (subscriberId) {
|
|
return get({
|
|
resource: 'cfmappings',
|
|
resourceId: subscriberId
|
|
})
|
|
}
|
|
|
|
export async function cfLoadDestinationSets (subscriberId) {
|
|
return getList({
|
|
resource: 'cfdestinationsets',
|
|
all: true,
|
|
params: (subscriberId) ? { subscriber_id: subscriberId } : {}
|
|
})
|
|
}
|
|
|
|
export async function cfLoadSourceSets (subscriberId) {
|
|
return getList({
|
|
resource: 'cfsourcesets',
|
|
params: (subscriberId) ? { subscriber_id: subscriberId } : {}
|
|
})
|
|
}
|
|
|
|
export async function cfLoadTimeSets (subscriberId) {
|
|
return getList({
|
|
resource: 'cftimesets',
|
|
params: (subscriberId) ? { subscriber_id: subscriberId } : {}
|
|
})
|
|
}
|
|
|
|
export async function cfLoadMappingsFull (subscriberId) {
|
|
return await Promise.all([
|
|
cfLoadMappings(subscriberId),
|
|
cfLoadDestinationSets(),
|
|
cfLoadSourceSets(),
|
|
cfLoadTimeSets()
|
|
])
|
|
}
|
|
|
|
export async function cfCreateDestinationSet (payload) {
|
|
return post({
|
|
resource: 'cfdestinationsets',
|
|
body: payload
|
|
})
|
|
}
|
|
|
|
export async function cfDeleteDestinationSet (id) {
|
|
return del({
|
|
resource: 'cfdestinationsets',
|
|
resourceId: id
|
|
})
|
|
}
|
|
|
|
export async function cfCreateSourceSet (id, payload) {
|
|
const sources = []
|
|
payload.numbers.forEach((number) => {
|
|
sources.push({
|
|
source: number
|
|
})
|
|
})
|
|
try {
|
|
const res = await post({
|
|
resource: 'cfsourcesets',
|
|
body: {
|
|
name: payload.name,
|
|
subscriber_id: id,
|
|
is_regex: true,
|
|
sources: sources,
|
|
mode: payload.mode
|
|
}
|
|
})
|
|
if (!_.isString(res)) {
|
|
return res.id + ''
|
|
} else {
|
|
return res
|
|
}
|
|
} catch (e) {
|
|
showGlobalError(e)
|
|
}
|
|
}
|
|
|
|
export async function cfUpdateSourceSet (id, payload) {
|
|
const sources = []
|
|
payload.numbers.forEach((number) => {
|
|
sources.push({
|
|
source: number
|
|
})
|
|
})
|
|
return putMinimal({
|
|
resource: 'cfsourcesets',
|
|
resourceId: payload.id,
|
|
body: {
|
|
name: payload.name,
|
|
subscriber_id: id,
|
|
is_regex: true,
|
|
sources: sources,
|
|
mode: payload.mode
|
|
}
|
|
})
|
|
}
|
|
|
|
export async function cfDeleteSourceSet (id) {
|
|
return del({
|
|
resource: 'cfsourcesets',
|
|
resourceId: id
|
|
})
|
|
}
|
|
|
|
export async function cfCreateTimeSetDate (subscriberId, date) {
|
|
return post({
|
|
resource: 'cftimesets',
|
|
body: {
|
|
subscriber_id: subscriberId,
|
|
name: 'csc-date-exact-' + v4(),
|
|
times: [
|
|
{
|
|
minute: null,
|
|
month: date.month,
|
|
hour: null,
|
|
mday: date.date,
|
|
year: date.year,
|
|
wday: null
|
|
}
|
|
]
|
|
}
|
|
})
|
|
}
|
|
|
|
export async function cfUpdateTimeSetDate (timeSetId, date) {
|
|
return patchReplace({
|
|
resource: 'cftimesets',
|
|
resourceId: timeSetId,
|
|
fieldPath: 'times',
|
|
value: [
|
|
{
|
|
minute: null,
|
|
month: date.month,
|
|
hour: null,
|
|
mday: date.date,
|
|
year: date.year,
|
|
wday: null
|
|
}
|
|
]
|
|
})
|
|
}
|
|
|
|
export async function cfDeleteTimeSet (timesetId) {
|
|
return del({
|
|
resource: 'cftimesets',
|
|
resourceId: timesetId
|
|
})
|
|
}
|
|
|
|
export async function cfCreateTimeSetDateRange (subscriberId, times) {
|
|
return post({
|
|
resource: 'cftimesets',
|
|
body: {
|
|
subscriber_id: subscriberId,
|
|
name: 'csc-date-range-' + v4(),
|
|
times: times
|
|
}
|
|
})
|
|
}
|
|
|
|
export async function cfUpdateTimeSetDateRange (timeSetId, times) {
|
|
return patchReplace({
|
|
resource: 'cftimesets',
|
|
resourceId: timeSetId,
|
|
fieldPath: 'times',
|
|
value: times
|
|
})
|
|
}
|
|
|
|
export async function cfCreateTimeSetWeekdays (subscriberId, weekdays) {
|
|
const times = []
|
|
weekdays.forEach((weekday) => {
|
|
times.push({
|
|
minute: null,
|
|
month: null,
|
|
hour: null,
|
|
mday: null,
|
|
year: null,
|
|
wday: weekday
|
|
})
|
|
})
|
|
return post({
|
|
resource: 'cftimesets',
|
|
body: {
|
|
subscriber_id: subscriberId,
|
|
name: 'csc-weekdays-' + v4(),
|
|
times: times
|
|
}
|
|
})
|
|
}
|
|
|
|
export async function cfUpdateTimeSetWeekdays (timeSetId, weekdays) {
|
|
const times = []
|
|
weekdays.forEach((weekday) => {
|
|
times.push({
|
|
minute: null,
|
|
month: null,
|
|
hour: null,
|
|
mday: null,
|
|
year: null,
|
|
wday: weekday
|
|
})
|
|
})
|
|
return patchReplace({
|
|
resource: 'cftimesets',
|
|
resourceId: timeSetId,
|
|
fieldPath: 'times',
|
|
value: times
|
|
})
|
|
}
|
|
|
|
export async function cfCreateOfficeHours (subscriberId, times) {
|
|
return post({
|
|
resource: 'cftimesets',
|
|
body: {
|
|
subscriber_id: subscriberId,
|
|
name: 'csc-office-hours-' + v4(),
|
|
times: times
|
|
}
|
|
})
|
|
}
|
|
|
|
export async function cfUpdateOfficeHours (timeSetId, times) {
|
|
return patchReplace({
|
|
resource: 'cftimesets',
|
|
resourceId: timeSetId,
|
|
fieldPath: 'times',
|
|
value: times
|
|
})
|
|
}
|