| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | 
							- import { parseJSON, parseStatus, userFeedbackError } from './response';
 
- import { config } from 'grav-config';
 
- import { EventEmitter } from 'events';
 
- export default class GPM extends EventEmitter {
 
-     constructor(action = 'getUpdates') {
 
-         super();
 
-         this.payload = {};
 
-         this.raw = {};
 
-         this.action = action;
 
-     }
 
-     setPayload(payload = {}) {
 
-         this.payload = payload;
 
-         this.emit('payload', payload);
 
-         return this;
 
-     }
 
-     setAction(action = 'getUpdates') {
 
-         this.action = action;
 
-         this.emit('action', action);
 
-         return this;
 
-     }
 
-     fetch(callback = () => true, flush = false) {
 
-         let data = new FormData();
 
-         data.append('admin-nonce', config.admin_nonce);
 
-         if (flush) {
 
-             data.append('flush', true);
 
-         }
 
-         this.emit('fetching', this);
 
-         fetch(`${config.base_url_relative}/update.json/task${config.param_sep}getUpdates`, {
 
-             credentials: 'same-origin',
 
-             method: 'post',
 
-             body: data
 
-         }).then((response) => { this.raw = response; return response; })
 
-             .then(parseStatus)
 
-             .then(parseJSON)
 
-             .then((response) => this.response(response))
 
-             .then((response) => callback(response, this.raw))
 
-             .then((response) => this.emit('fetched', this.payload, this.raw, this))
 
-             .catch(userFeedbackError);
 
-     }
 
-     response(response) {
 
-         this.payload = response;
 
-         return response;
 
-     }
 
- }
 
- export let Instance = new GPM();
 
 
  |