import got from 'got' const DEFAULT = { m: 'This is the Default Message', // message t: '', // title s: 5, // sound (value 0-28) v: 2, // vibration (empty or value 1-3) i: 5, // icon (value 1-98) c: '#FF0000', // icon color (optional) l: 0, // Time to Live in minutes pr: 2, // Priority (optional: -2, -1, 0, 1, 2) re: 60, // Retry (optional: 60-10800 seconds) ex: 60, // Expire (optional: 60-10800 seconds) a: 0, // Answer p2: '', // Image 2 converted to > Data URL with Base64-encoded string p3: '' // Image 3 converted to > Data URL with Base64-encoded string } class Pushsafer { constructor(opts) { this._req = Object.assign({},DEFAULT,opts) this.url = opts.url || 'https://www.pushsafer.com/api' this.key = opts.k this.device = opts.d } async send (msg, opts={}) { Object.assign(this._req,opts) this._req.m = typeof msg === 'string' ? msg : msg.msg || msg.message || msg.subject let s = new URLSearchParams (Object.entries(this._req)) try { const {body} = await got(this.url,{searchParams:s}) return JSON.parse(body) } catch (err) { return {error:err} } } setOpts (opts) { // missing opts and they are reset to defaults if (!opts) this._req = Object.assign({},DEFAULT,{k:this.key, d:this.device}) Object.assign(this._req,opts) } } export default Pushsafer export { Pushsafer as Service }