sensible-sdk
Version:
Sensible-SDK
134 lines (133 loc) • 5.35 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServerNet = void 0;
const _1 = require(".");
const Utils = require("./utils");
class ServerNet {
static httpGet(url, params, cb, config) {
let str = "";
let cnt = 0;
for (var id in params) {
if (cnt != 0)
str += "&";
str += id + "=" + params[id];
cnt++;
}
if (str) {
url += "?" + str;
}
config = config || {};
let headers = config.headers || {};
let timeout = config.timeout || _1.Net.timeout;
let reqData = {
uri: url,
method: "GET",
timeout,
gzip: true,
headers,
};
const handlerCallback = (resolve, reject) => {
require("request")(reqData, function (err, res, body) {
if (!err) {
if (res.statusCode >= 200 && res.statusCode < 300) {
if (typeof body == "string") {
try {
body = JSON.parse(body);
}
catch (e) { }
}
resolve(body);
}
else {
console.log("request failed.", reqData);
reject(new Error(`RequestError: statuCode:${res.statusCode} statusMessage:${res.statusMessage} body:${body}`));
}
}
else {
console.log("request failed.", reqData);
reject(err);
}
});
};
if (typeof cb === "function") {
handlerCallback((result) => Utils.invokeCallback(cb, null, result), (err) => Utils.invokeCallback(cb, err));
return;
}
return new Promise((resolve, reject) => {
handlerCallback(resolve, reject);
});
}
static httpPost(url, params, cb, config) {
return __awaiter(this, void 0, void 0, function* () {
let postData;
config = config || {};
let headers = config.headers || {};
let timeout = config.timeout || _1.Net.timeout;
headers["content-type"] = headers["content-type"] || "application/json";
if (headers["content-type"] == "application/x-www-form-urlencoded") {
let arr = [];
for (var id in params) {
arr.push(`${id}=${params[id]}`);
}
postData = arr.join("&");
}
else if (headers["content-type"] == "text/plain") {
postData = params;
}
else {
postData = JSON.stringify(params);
}
if (headers["content-encoding"] == "gzip") {
postData = yield Utils.gzip(Buffer.from(postData));
}
const reqData = {
uri: url,
method: "POST",
body: postData,
headers: headers,
timeout: timeout,
gzip: true,
};
const handlerCallback = (resolve, reject) => {
require("request")(reqData, function (err, res, body) {
if (!err) {
if (res.statusCode >= 200 && res.statusCode < 300) {
if (typeof body == "string") {
try {
body = JSON.parse(body);
}
catch (e) { }
}
resolve(body);
}
else {
console.log("request failed.", reqData);
reject(new Error(`RequestError: statuCode:${res.statusCode} statusMessage:${res.statusMessage} body:${body}`));
}
}
else {
console.log("request failed.", reqData);
reject(err);
}
});
};
if (typeof cb === "function") {
handlerCallback((result) => Utils.invokeCallback(cb, null, result), (err) => Utils.invokeCallback(cb, err));
return;
}
return new Promise((resolve, reject) => {
handlerCallback(resolve, reject);
});
});
}
}
exports.ServerNet = ServerNet;
;