import express, { Request, Response } from 'express';
import { basicAuth } from '../middleware/basic-auth';
import { fulljourney } from '../middleware/fulljourney';
import { responsefull } from '../middleware/fulljourney';
const router = express.Router();
router.post(
'/api/smartdocs/test',
basicAuth,
async (req: Request, res: Response) => {
let bufdata =
'0209D000000500.00BETAALPLANfalse000.000.0000.00CNP20N0.0009H1314198488A09901500.0071572480.000.000.00500.0020.00500.0010.000.797559.88280.0010.002022-07-272022-07-27T02:18:15Z1LTEST1986-04-191Nederlandse09XNVBJ4DW901202401000106111111111truefalse0100.00test@test.comtrueNL96INGB78438428611120003526KV77WINTHONTLNUTRECHTNL1100.0010119992500.000.0011400.001TTESTSP1983-12-19009XNVBJ4DW90120370100010611111111testsp@test.comtrue11120001500.000.0011YAHOO450.00DUR31419848820210208142729NBFRST1001TESTL3526KV77WINTHONTLNUTRECHTNLNL96INGB7843842861NL81ZZZ3007628400Santander Consumer Finance Benelux B.V.3526KV171WinthontlaanUtrechtNL0213646QONNEX FINANCE MEUBELS 9.9%8162NG11LOHUIZERVEENWEGEPENLinfo@qonnexfinance.nl';
let bufflowdata =
'PublishStore-santander/acc/santander/Kifid_ContractKifid_ContractContractModelStore_santander/ModelStore_Santander/Kifid/Contract.lgm1.2cristiaen.schaapcristiaen.schaap7.3.6';
let bufferedResponse: responsefull = await fulljourney(
bufdata,
bufflowdata
);
res.setHeader('Content-Type', bufferedResponse.ContentType);
res.setHeader('Content-Disposition', bufferedResponse.ContentDisp);
res.send(bufferedResponse.responseBuffer);
}
);
export { router as testRouter };
---------
import axios from 'axios';
const FormData = require('form-data');
const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms));
export interface responsefull {
responseBuffer: Buffer;
ContentType: string;
ContentDisp: string;
}
export const fulljourney = async (
dataKifid: string,
flowdataKifid: string
): Promise => {
let bufdata = Buffer.from(dataKifid);
let bufflowdata = Buffer.from(flowdataKifid);
let data = new FormData();
data.append('data', bufdata, 'data2.xml');
data.append('flowdata', bufflowdata, 'flowdata.xml');
data.append(
'modelpath',
'PublishStore-santander/acc//santander/Kifid_Contract/nl-NL/compiled.lgp'
);
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'http://localhost:3001/api/smartdocs/request',
auth: {
username: 'santander',
password: 'santander'
},
data: data
};
let requestid: { RequestId: string; CorrelationId: number };
await axios.request(config).then((response: any) => {
console.log(response.data);
requestid = JSON.parse(JSON.stringify(response.data));
});
console.log('sleeping for 10s');
await sleep(10000);
console.log('woke up');
let configStatus = {
method: 'get',
maxBodyLength: Infinity,
url: 'http://localhost:3001/api/smartdocs/status/' + requestid!.RequestId,
auth: {
username: 'santander',
password: 'santander'
}
};
let responseDocument: {
Document: {
DocumentId: string;
};
};
await axios.request(configStatus).then((response) => {
console.log(JSON.stringify(response.data));
responseDocument = JSON.parse(JSON.stringify(response.data));
});
console.log(responseDocument!);
let bufferedResponse: Buffer;
let resfull: responsefull;
await axios({
method: 'get',
responseType: 'arraybuffer',
responseEncoding: 'binary',
url:
'http://localhost:3001/api/smartdocs/document/' +
requestid!.RequestId +
'/' +
responseDocument!.Document.DocumentId,
auth: {
username: 'santander',
password: 'santander'
}
}).then((response) => {
bufferedResponse = response.data;
resfull = {
responseBuffer: bufferedResponse!,
ContentType: response.headers['content-type'],
ContentDisp: response.headers['content-disposition']
};
});
await axios({
method: 'delete',
url: 'http://localhost:3001/api/smartdocs/delete/' + requestid!.RequestId,
auth: {
username: 'santander',
password: 'santander'
}
}).then((response) => {
console.log('request deleted');
});
return resfull!;
};