let Requests = {}; Requests.JSONfetch = (input, init={}) => { return new Promise((resolve, reject) => { let fixedInit = {}; fixedInit.headers = {}; fixedInit.headers['Accept'] = 'application/json'; if (init.hasOwnProperty('body')) { fixedInit.headers['Content-Type'] = 'application/json'; } fetch(input, Utils.mergeObjectsDeep(init, fixedInit)) .then( (response) => { if (response.ok) { resolve(response.clone()); } else { reject(response); } if (response.status === 204) { return; } response.json() .then( (json) => { let message = json.message || json; let category = json.category || 'message'; app.flash(message, category); }, (error) => { app.flash(`[${response.status}]: ${response.statusText}`, 'error'); } ); }, (response) => { app.flash('Something went wrong', 'error'); reject(response); } ); }); };