nerve-sdk-js
Version:
nerve nerve-js nerve-sdk nerve-js-sdk
105 lines (95 loc) • 2.65 kB
JavaScript
var axios = require('axios').default;
var https = require('https');
var nerve = require('../../index');
axios.defaults.headers.post['Content-Type'] = 'application/json'; // const agent = new https.Agent({
// rejectUnauthorized: false,
// host: '127.0.0.1',
// port: 1087
// });
var agent = new https.Agent({
rejectUnauthorized: false
});
/**
* 封装post请求
* Encapsulation post method
* @param url
* @param methodName
* @param data
* @returns {Promise}
*/
module.exports = {
post(url, methodName) {
var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
return new Promise((resolve, reject) => {
data.unshift(nerve.chainId());
var params = {
"jsonrpc": "2.0",
"method": methodName,
"params": data,
"id": Math.floor(Math.random() * 1000)
};
axios.post(url, params, {
httpsAgent: agent
}).then(response => {
resolve(response.data);
}, err => {
reject(err);
});
});
},
postComplete(url, methodName) {
var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
return new Promise((resolve, reject) => {
var params = {
"jsonrpc": "2.0",
"method": methodName,
"params": data,
"id": Math.floor(Math.random() * 1000)
};
axios.post(url, params).then(response => {
resolve(response.data);
}, err => {
reject(err);
});
});
},
postCompleteWithHeader(url, methodName) {
var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
var header = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
header['Content-Type'] = 'application/json';
return new Promise((resolve, reject) => {
var params = {
"jsonrpc": "2.0",
"method": methodName,
"params": data,
"id": Math.floor(Math.random() * 1000)
};
axios.post(url, params, {
headers: header
}).then(response => {
resolve(response.data);
}, err => {
reject(err);
});
});
},
postDirect(url) {
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return new Promise((resolve, reject) => {
axios.post(url, params).then(response => {
resolve(response.data);
}, err => {
reject(err);
});
});
},
get(url) {
return new Promise((resolve, reject) => {
axios.get(url).then(response => {
resolve(response.data);
}, err => {
reject(err);
});
});
}
};