webhook/src/http.ts
2021-02-26 14:00:44 +10:00

47 lines
1 KiB
TypeScript

const fetch = require('node-fetch')
var https = require('https')
class Http {
make(
url: string,
headers: string | null,
body: string | null,
ignoreCertificate: boolean | null
): Promise<any> {
return new Promise((resolve, reject) => {
fetch(
url,
this.getOptions('post', headers, body, ignoreCertificate)
).then((res: Response) => resolve(res))
})
}
getOptions(
method: string,
headers: string | null,
body: string | null,
ignoreCertificate: boolean | null
) {
const options: any = {
headers: headers ? JSON.parse(headers) : {},
method
}
if (body) {
// parse the body
options.body = body
}
if (ignoreCertificate) {
// ignore the certificate by not rejecting authorized servers
options.agent = new https.Agent({rejectUnauthorized: false})
}
// set these headers
options.headers['content-type'] = 'application/json'
return options
}
}
export const http = new Http()