UNPKG

starty

Version:

a lightweight framework which helps building modular and configurable Node.js applications

95 lines (74 loc) 2.24 kB
'use strict' const http = require('http'); const methods = require("../methods"); function checkHttpOptions(options, defaultMethod){ let {method, port} = options; if (method === undefined){ options.method = defaultMethod; } if (port === undefined){ options.port = 80; } return options; } function performHttpRequest(url, options, onSuccessCall, onFailCall) { let responseParts = []; let apiRequest = http.request(url, options, res => { res.on('data', chunk => { responseParts.push(chunk); }); res.on('end', () => { let responseData = Buffer.concat(responseParts).toString(); if (res.statusCode == 200){ onSuccessCall(responseData); } else { onFailCall(responseData); } }); }); return apiRequest; } function doGet(url, options, onSuccess, onFail, payload){ options = checkHttpOptions(options, 'GET'); let req = performHttpRequest(url, options, onSuccess, onFail); req.on('error', err => { onFail(err); }); req.end(); } function doPost(url, options, onSuccess, onFail, payload){ options = checkHttpOptions(options, 'POST'); let req = performHttpRequest(url, options, onSuccess, onFail); req.on('error', err => { onFail(err); }); req.write(payload); req.end(); } function doPut(url, options, onSuccess, onFail, payload){ options = checkHttpOptions(options, 'PUT'); let req = performHttpRequest(url, options, onSuccess, onFail); req.on('error', err => { onFail(err); }); req.write(payload); req.end(); } function doDelete(url, options, onSuccess, onFail, payload){ options = checkHttpOptions(options, 'DELETE'); let req = performHttpRequest(url, options, onSuccess, onFail); req.on('error', err => { onFail(err); }); req.write(payload); req.end(); } const httpMethods = { [methods.GET]: doGet, [methods.POST]: doPost, [methods.PUT]: doPut, [methods.DELETE]: doDelete } module.exports = { httpMethods }