Commit 8753b1bb authored by Kamron Aroonrua's avatar Kamron Aroonrua 💬

do http plugin

parent 3a93de96
var util = require('util');
var DOPlugin = require('../do-plugin');
function DOTask(context,request){
DOPlugin.call(this,context,request);
this.name = "ext-storage";
}
util.inherits(DOTask,DOPlugin);
DOTask.prototype.perform = require('./perform');
module.exports = DOTask;
var ctx = require('../../../context');
var Utils = ctx.getLib('lib/util/plugin-utils');
var bsdata = ctx.getLib('lib/model/bsdata');
var request = require("request");
function perform_function(context,request,response){
var job_id = context.jobconfig.job_id;
var transaction_id = context.transaction.id;
var param = context.jobconfig.data_out.param;
var memstore = context.task.memstore
var output_type = request.input_type;
var data = request.data;
var meta = request.meta;
var token = param.token;
var api_url = param.api;
var storage_name = param.storage_name;
var env = {
'type' : output_type,
'data' : data,
'meta' : meta
}
var sname = Utils.vm_execute_text(env,storage_name);
var en_data = bsdata.create(data).serialize('object-encoded');
var storage_url = api_url + '/storage/' + sname
var msgbody = {
'meta':meta,
'data':en_data
}
send_to_storage({'api':storage_url,'token':token,'body':msgbody},function(err){
if(!err){
response.success();
}else{
response.error(err);
}
})
//response.success();
//response.reject();
//response.error("error message")
}
function send_to_storage(prm,cb)
{
var options = { method: 'PUT',
url: prm.api,
headers:
{ 'cache-control': 'no-cache',
'content-type': 'application/json' },
json: prm.body
};
if(prm.token){options.headers.authorization='Bearer ' + prm.token;}
request(options, function (err, resp, body) {
if (!err && resp.statusCode==200) {
cb();
}else{
cb(new Error("api error"));
}
});
}
module.exports = perform_function;
var util = require('util');
var DOPlugin = require('../do-plugin');
function DOTask(context,request){
DOPlugin.call(this,context,request);
this.name = "http";
}
util.inherits(DOTask,DOPlugin);
DOTask.prototype.perform = require('./perform');
module.exports = DOTask;
var ctx = require('../../../context');
var Utils = ctx.getLib('lib/util/plugin-utils');
var bsdata = ctx.getLib('lib/model/bsdata');
var request = require("request");
function perform_function(context,request,response){
var job_id = context.jobconfig.job_id;
var transaction_id = context.transaction.id;
var param = context.jobconfig.data_out.param;
var memstore = context.task.memstore
var output_type = request.input_type;
var data = request.data;
var meta = request.meta;
var req_url = param.url || "";
var req_method = param.method || "GET";
var env = {
'type' : output_type,
'data' : data,
'meta' : meta
}
var req_url = Utils.vm_execute_text(env,req_url);
send_request({'url':req_url,'method':req_method,'headers':param.headers,'body':data},function(err){
if(!err){
response.success();
}else{
response.error(err);
}
})
//response.success();
//response.reject();
//response.error("error message")
}
function send_request(prm,cb)
{
var options = { method: 'GET',
url: prm.url,
headers:
{ 'cache-control': 'no-cache' }
};
if(prm.method.toLowerCase()=='post' || prm.method.toLowerCase()=='put')
{
options.method = prm.method.toUpperCase();
options.headers['content-type'] = 'application/json';
options.json = prm.body;
}
if(typeof prm.headers == 'object')
{
options.headers = Object.assign(options.headers,prm.headers)
}
request(options, function (err, resp, body) {
if (!err) {
cb();
}else{
cb(new Error("request error"));
}
});
}
module.exports = perform_function;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment