UNPKG

vue-giveworks-form

Version:

A Vue.js component for building and submitting Giveworks form.

52 lines (39 loc) 1.28 kB
import { each } from 'lodash-es'; import { extend } from 'lodash-es'; import { trimEnd } from 'lodash-es'; import axios from 'axios/dist/axios'; import HttpConfig from '/Config/Http'; import PageEndpoint from '/Http/Endpoints/Page'; class Api { constructor() { this.config = HttpConfig; this.registerEndpoints(HttpConfig.endpoints); } get(url, options) { return axios.get(url, extend(options, HttpConfig.defaultRequestOptions)); } post(url, data, options) { return axios.post(url, data, extend(options, HttpConfig.defaultRequestOptions)); } put(url, data, options) { return axios.put(url, data, extend(options, HttpConfig.defaultRequestOptions)); } delete(url, options) { return axios.delete(url, extend(options, HttpConfig.defaultRequestOptions)); } baseUrl() { return trimEnd(HttpConfig.baseUrl, '/'); } url() { return [this.baseUrl()].concat([].slice.call(arguments)).join('/'); } registerEndpoints(endpoints) { each(endpoints, (endpoint, key) => { this.registerEndpoint(key, endpoint); }, this); } registerEndpoint(key, endpoint) { this[key] = new endpoint(this); } } export default new Api;