@absolute/change-tracker-node-sdk
Version:
ChangeTracker SDK for Node.js
43 lines (34 loc) • 1.17 kB
JavaScript
const https = require('https')
/**
* store - perform POST request to host
* @param {string} hostName - the project host name
* @param {string} token - JWT token for authentication
* @param {Table} table - the table model
* @returns response object
**/
async function store(hostName, token, table) {
if (table == null) return null
const baseUrl = `https://${hostName}.hosts.changetracker.it`
const tableName = encodeURI(table.name)
const url = `${baseUrl}/?tableName=${tableName}&token=${encodeURI(token)}`
const options = { method: 'POST', headers: { accept: 'application/json' } }
const body = JSON.stringify(table)
return await new Promise((resolve, reject) => {
const request = https.request(url, options, (res) => {
res.setEncoding('utf8')
let returnData = ''
res.on('data', (chunk) => {
returnData += chunk
})
res.on('end', () => {
resolve(JSON.parse(returnData))
})
})
request.on('error', (e) => {
resolve({ok: false, errorText: e.message})
})
request.write(body)
request.end()
});
}
module.exports = { store }