DockerERTFF/extensions/server_connect/modules/onesignal_create_segment.js

47 lines
1.5 KiB
JavaScript

// JavaScript Document
// throwing 500 error
exports.onesignal_create_segment = async function (options) {
const { v4: uuidv4 } = require("uuid");
const uuid = uuidv4();
//console.log(`UUID: ${uuid}`);
// get appid
const appid = this.parseOptional(options.appid, '*', process.env.ONESIGNAL_APP_ID);
console.log(options.appid + " => " + appid);
const segname = this.parseRequired(options.segname, '*', 'No segment name specified');
console.log(options.segname + " => " + segname);
const filter = this.parseOptional(options.filter, '*', null);
console.log(options.filter + " => " + filter);
const seguuid = this.parseOptional(options.seguuid, '*', uuid);
console.log("seguuid: " + options.seguuid + " => " + seguuid);
const fetch = require('node-fetch');
const url = `https://api.onesignal.com/apps/${appid}/segments`;
const os_options = {
method: 'POST',
headers: {
accept: 'application/json',
Authorization: `Basic ${process.env.ONESIGNAL_REST_API_KEY}`,
'Content-Type': 'application/json; charset=utf-8'
},
body: JSON.stringify({ name: segname, 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));
}