DockerERTFF/extensions/server_connect/modules/onesignal_update_subscripti...

39 lines
1.7 KiB
JavaScript

// JavaScript Document
// v1.0.0
// retruned undocumented property "offset" (currently added to schema)"
exports.onesignal_update_subscription = async function (options) {
// get appid parsed as options.appid, throw error is missing
const appid = this.parseRequired(options.appid, '*', 'No app ID entered')
// log before and after vlaues
console.log('App id: ' + options.appid + " => " + appid)
var subscription_id = this.parseRequired(options.subscription_id, '*', 'Subscription ID not specified')
console.log('Subscription_id: ' + options.subscription_id + " => " + subscription_id)
var token = this.parseRequired(options.token, '*', 'Token not specified')
console.log('Token: ' + options.token + " => " + token)
const pushtype = this.parseRequired(options.pushtype, '*', 'No push type specified')
console.log('Type: ' + options.pushtype)
const enabled = this.parseOptional(options.enabled, '*', false)
console.log('Enabled: ' + options.enabled + " => " + enabled)
const fetch = require('node-fetch');
const url = `https://api.onesignal.com/apps/${appid}/subscriptions/${subscription_id}`;
const os_options = {
method: 'PATCH',
headers: { accept: 'application/json', 'content-type': 'application/json', Authorization: `Basic ${process.env.ONESIGNAL_REST_API_KEY}` },
body: JSON.stringify({ subscription: { type: pushtype, token: token, enabled: enabled } })
};
return fetch(url, os_options)
.then(res => {
return res.json().then(json => {
json.status = res.status; // Add status to json response
return json;
});
})
.catch(err => console.error('Error:', err));
}