cheetah-framework
Version:
Cheetah Framework JS used in all our applications
67 lines (55 loc) • 1.52 kB
JavaScript
import FormErrorHelper from './FormErrorHelper'
const defaultOptions = {
successMessage: false,
onSuccess: false,
onError: false,
onErrorPreventDefault: false
}
export default {
formHelper: true,
mixins: [FormErrorHelper],
data () {
return {
}
},
methods: {
/**
* @param {String} method
* @param {Object} payload
* @param {Object} options
*/
saveInstance (method, payload, options = {}) {
options = _.assignIn({}, defaultOptions, options)
return new Promise((resolve, reject) => {
this.$store.dispatch(method, payload).then(response => {
// Success message
Message.success(options.successMessage ? options.successMessage : this.$t(
this.isPersisted ? 'save_success' : 'create_success'
))
if (options.onSuccess instanceof Function) {
options.onSuccess(response)
}
resolve(response)
}).catch(error => {
if (options.onError instanceof Function) {
options.onError(error)
}
if (options.onErrorPreventDefault) {
reject(error)
return
}
if (error.response) {
this.formErrors.set(error.response.data.errors)
} else {
RemoteErrors(error)
}
reject(error)
}).then(() => {
if (options.onFinally instanceof Function) {
options.onFinally()
}
})
})
}
}
}