import axios from 'axios' import Errors from '@/Utils/Errors' class Form { constructor(fields = {}) { this.fields = fields this.sending = false this.errors = new Errors() this.http = axios.create({ headers: { 'X-Requested-With': 'XMLHttpRequest' }, }) } delete({ url, then }) { this.request(this.http.delete(url), then) } post({ url, data = this.fields, then }) { this.request(this.http.post(url, data), then) } put({ url, data = this.fields, then }) { this.request(this.http.put(url, data), then) } request(request, then) { this.sending = true request.then(response => { this.sending = false then(response.data) }).catch(error => { this.sending = false if (error.response && error.response.status === 422) { this.errors.record(error.response.data.errors) } else { return Promise.reject(error) } }) } } export default Form