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.
ngcp-csc-ui/src/communication.js

51 lines
1.6 KiB

import { i18n } from 'boot/i18n'
import { createFax } from 'src/api/communication'
import { RequestState } from 'src/store/common'
export default {
namespaced: true,
state: {
createFaxState: RequestState.button,
createFaxError: null
},
getters: {
subscriberId (state, getters, rootState, rootGetters) {
return parseInt(rootGetters['user/getSubscriberId'])
},
createFaxState (state) {
return state.createFaxState
},
createFaxError (state) {
return state.createFaxError ||
i18n.global.t('An error occurred while trying to send the fax. Please try again')
}
},
mutations: {
createFaxRequesting (state) {
state.createFaxState = RequestState.requesting
state.createFaxError = null
},
createFaxSucceeded (state) {
state.createFaxState = RequestState.succeeded
state.createFaxError = null
},
createFaxFailed (state, error) {
state.createFaxState = RequestState.failed
state.createFaxError = error
}
},
actions: {
createFax (context, $options) {
const options = Object.assign($options, {
subscriber_id: context.getters.subscriberId
})
context.commit('createFaxRequesting')
createFax(options).then(() => {
context.commit('createFaxSucceeded')
}).catch((err) => {
context.commit('createFaxFailed', err.message)
})
}
}
}