UNPKG

jsql-node-plugin

Version:

JSQL plugin for Node

1 lines 3.46 kB
let rp=require("request-promise");function JsqlConfig(config){this.apiKey=config.apiKey,this.devKey=config.devKey,this.readTimeout=config.readTimeout||1e4,this.connectTimeout=config.connectTimeout||15e3,this.providerPort=config.providerPort||"",this.providerUrl=config.providerUrl||"https://provider.jsql.it",this.providerUrl=this.providerUrl+this.providerPort+"/api/jsql"}function JsqlResponse(response,transactionId){this.response=response,this.transactionId=transactionId}let Jsql={TRANSACTION_ID:"txid",__call:function(transactionId,fullUrl,request,config){return rp({method:"POST",url:fullUrl,body:JSON.stringify(request),headers:{"Content-Type":"application/json","Api-Key":config.apiKey,"Dev-Key":config.devKey},simple:!1,resolveWithFullResponse:!0}).then(function(response){return new JsqlResponse(JSON.parse(response.body),response.headers[Jsql.TRANSACTION_ID]||null)}).catch(function(error){return new JsqlResponse(error,null)})},__callSelect:function(transactionId,data,config){return Jsql.__call(transactionId,config.providerUrl+"/select",data,config)},__callDelete:function(transactionId,data,config){return Jsql.__call(transactionId,config.providerUrl+"/delete",data,config)},__callUpdate:function(transactionId,data,config){return Jsql.__call(transactionId,config.providerUrl+"/update",data,config)},__callInsert:function(transactionId,data,config){return Jsql.__call(transactionId,config.providerUrl+"/insert",data,config)},__callRollback:function(transactionId,config){return Jsql.__call(transactionId,config.providerUrl+"/rollback",null,config)},__callCommit:function(transactionId,config){return Jsql.__call(transactionId,config.providerUrl+"/commit",null,config)},select:function(req,res,config){function handleResponse(jsqlResponse){null!=jsqlResponse.transactionId&&res.setHeader(Jsql.TRANSACTION_ID,jsqlResponse.transactionId),res.status(200).json(jsqlResponse.response)}Jsql.__callSelect(req.headers[Jsql.TRANSACTION_ID],req.body,config).then(handleResponse).catch(handleResponse)},delete:function(req,res,config){function handleResponse(jsqlResponse){null!=jsqlResponse.transactionId&&res.setHeader(Jsql.TRANSACTION_ID,jsqlResponse.transactionId),res.status(200).json(jsqlResponse.response)}Jsql.__callDelete(req.headers[Jsql.TRANSACTION_ID],req.body,config).then(handleResponse).catch(handleResponse)},update:function(req,res,config){function handleResponse(jsqlResponse){null!=jsqlResponse.transactionId&&res.setHeader(Jsql.TRANSACTION_ID,jsqlResponse.transactionId),res.status(200).json(jsqlResponse.response)}Jsql.__callUpdate(req.headers[Jsql.TRANSACTION_ID],req.body,config).then(handleResponse).catch(handleResponse)},insert:function(req,res,config){function handleResponse(jsqlResponse){null!=jsqlResponse.transactionId&&res.setHeader(Jsql.TRANSACTION_ID,jsqlResponse.transactionId),res.status(200).json(jsqlResponse.response)}Jsql.__callInsert(req.headers[Jsql.TRANSACTION_ID],req.body,config).then(handleResponse).catch(handleResponse)},rollback:function(req,res,config){function handleResponse(jsqlResponse){res.status(200).json(jsqlResponse.response)}Jsql.__callRollback(req.headers[Jsql.TRANSACTION_ID],config).then(handleResponse).catch(handleResponse)},commit:function(req,res,config){function handleResponse(jsqlResponse){res.status(200).json(jsqlResponse.response)}Jsql.__callCommit(req.headers[Jsql.TRANSACTION_ID],config).then(handleResponse).catch(handleResponse)}};module.exports={JsqlConfig:JsqlConfig,Jsql:Jsql};