DockerERTFF/extensions/server_connect/modules/onesignal_create_sms_notifi...

57 lines
2.0 KiB
JavaScript

// JavaScript Document
//V1.0.0
exports.onesignal_create_sms_notification = async function (options) {
// get appid
const appid = this.parseOptional(options.appid, '*', process.env.ONESIGNAL_APP_ID)
console.log(options.appid + " => " + appid)
const contents = this.parseRequired(options.contents, '*', 'Bindings Required')
console.log(options.contents + " => " + contents)
const sms_from = this.parseOptional(options.sms_from, '*', process.env.ONESIGNAL_SMS_DEFAULT)
console.log(options.sms_from + " => " + sms_from)
// get message internal name
const osname = this.parseOptional(options.osname, '*', 'osname')
console.log('Name: ' + options.osname + " => " + osname)
const segment = this.parseOptional(options.segment, '*', 'All')
console.log("Segment: " + options.segment + " => " + segment)
const filter = this.parseOptional(options.filter, '*', null)
console.log("Filter: " + options.filter + " => " + filter)
const include_phone_numbers = this.parseOptional(options.include_phone_numbers, '*', null)
console.log("include_phone_numbers: " + options.include_phone_numbers + " => " + include_phone_numbers)
const fetch = require('node-fetch');
const url = 'https://api.onesignal.com/notifications?c=sms';
const os_options = {
method: 'POST',
headers: { accept: 'application/json', 'content-type': 'application/json', Authorization: `Basic ${process.env.ONESIGNAL_REST_API_KEY}` },
body: JSON.stringify({
contents: contents,
app_id: appid,
included_segments: [segment],
target_channel: 'sms',
sms_from: sms_from,
name: osname,
include_phone_numbers: [include_phone_numbers],
filters: filter
}
)
};
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));
}