freechat/freechat-client/src/request.js
shockrah fd1bf41fec Message constructor now takes in username as a parameter and binds it to uname
 Removed some fluff
 New get_member endpoint handler for later
2021-03-07 13:50:48 -08:00

49 lines
1.0 KiB
JavaScript

const got = require('got')
const { Response } = require('./response.js')
/**
*
* @param {String} method GET POST DELETE
* @param {String} domain
* @param {Number} port
* @param {String} path
* @param {Object} Query options to pass into a query string
* @param {Buffer} Optional body that defaults to an empty string
*
* @returns Response
* @throws HTTPError
*/
exports.Request = async function (method, domain, port, path, params, body=null) {
let url = `https://${domain}:${port}${path}`
const options = {
method: method,
searchParams: params,
responseType: 'json',
body: body,
}
// NOTE: only in dev environments do we use http
if(process.env['DEV_ENV']) {
url = `http://${domain}:${port}${path}`
}
const resp = await got(url , options)
return new Response(
resp.statusCode,
resp.body,
)
}
/*
* @param {String} proto | http/https
* @param {String} hostname |
* @param {Number} port |
*
* @description Helper macro
*/
exports.BuildUrl = function(proto, hostname, port) {
return `${proto}://${hostname}:${port}`
}