From 1f4160511f4853de614355f45b94152fbd19e29e Mon Sep 17 00:00:00 2001 From: ngharo Date: Wed, 3 Jan 2018 19:47:41 -0600 Subject: -~-~ Under Construction ~-~-~~~~~ --- www/src/request.js | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 www/src/request.js (limited to 'www/src/request.js') diff --git a/www/src/request.js b/www/src/request.js new file mode 100644 index 0000000..68ec8c3 --- /dev/null +++ b/www/src/request.js @@ -0,0 +1,49 @@ +module.exports = (api) => { + // Default request options + var defaults = { + headers: { + accept: 'application/json' + } + }; + + // Helper for constructing url + var url = (thing) => { + return api + thing; + }; + + var _fetch = (thing, data, options) => { + // Merge defaults with options + options = Object.assign({}, defaults, options); + + // data is only allowed for POST and PUT + if (data) { + options.body = new FormData(); + + for (var k in data) { + options.body.set(k, data[k]); + } + } + + return fetch(url(thing), options); + }; + + // GET/POST/DELETE/PUT helpers + // These helpers extend the defaults that get passed to fetch() + return { + get: (thing) => { + return _fetch(thing, null, {method: 'GET'}); + }, + + post: (thing, data) => { + return _fetch(thing, data, {method: 'POST'}); + }, + + put: (thing, data) => { + return _fetch(thing, data, {method: 'PUT'}); + }, + + delete: (thing, data) => { + return _fetch(thing, data, {method: 'DELETE'}); + } + }; +}; -- cgit v1.2.3