Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- app.post('/sign-async/:id', (req, res)=> {
- const id = req.params.id // training id
- const certificate_ids = req.body.certificate_ids // array of tcs->id
- const certificate_tokens = req.body.certificate_tokens // array of tcs->id
- const front_signer_cities = req.body.front_signer_cities
- const back_signer_cities = req.body.back_signer_cities
- const signer_id = req.body.signer_id
- const signer_pass = req.body.signer_pass
- const signer_page = req.body.signer_page // 1 or 2
- if(id && certificate_ids && front_signer_cities && back_signer_cities && signer_id && signer_pass && signer_page){
- res.send({
- 'status':'success',
- 'message':'dokumen sedang ditandatangani..'
- })
- const dir = base_dir + '/' + id
- //const endpoint_url = 'https://10.242.77.232/api/sign/pdf'
- const endpoint_url = 'https://esign.kemenkeu.go.id/api/sign/pdf'
- const endpoint_username = 'bsre'
- const endpoint_password = 'securetransactions!!!'
- certificate_ids.forEach((certificate_id, index, array) => {
- let certificate_link = "https://semantik.bppk.kemenkeu.go.id/api/v2/open/certificate?token="+certificate_tokens[certificate_id]+"&status=final"
- let source = dir + '/' + certificate_id + '-draft.pdf'
- let target = dir + '/' + certificate_id + '-partial.pdf'
- if (signer_page==1){
- source = dir + '/' + certificate_id + '-partial.pdf'
- target = dir + '/' + certificate_id + '.pdf'
- }
- let signer_city = front_signer_cities[index]
- if (signer_page==2) signer_city = back_signer_cities[index]
- try{
- fs.readFile(source, (error, pdf) => {
- if (!error) {
- let form = new formData();
- form.append('file', fs.createReadStream(source), {
- filename: certificate_id + '.pdf'
- });
- axios.create({
- headers: form.getHeaders()
- }).post(endpoint_url, form, {
- params: {
- 'nik': encodeURI(signer_id),
- 'passphrase': encodeURI(signer_pass),
- 'tampilan': 'visible',
- 'jenis_dokumen': encodeURI('sertifikat pelatihan'),
- 'nomor': encodeURI('1234'),
- 'tujuan': encodeURI('peserta pelatihan'),
- 'perihal': encodeURI('sertifikat pelatihan'),
- 'info': encodeURI('informasi'),
- 'image': false,
- 'linkQR': encodeURI(certificate_link),
- 'halaman': 'PERTAMA',
- 'teks': 'teks',
- 'xAxis': 40,
- 'yAxis': 30,
- 'width': 400,
- 'height': 120
- },
- auth: {
- username: endpoint_username,
- password: endpoint_password
- },
- responseType: "stream"
- }
- ).then( (response) => {
- response.data.pipe(fs.createWriteStream(target));
- log('write ' + target + ' success');
- })
- .catch((response) => {
- log(response)
- log('write ' + target + ' failure');
- });
- }
- })
- } catch (error) {
- log(error)
- }
- })
- }
- else{
- log(id+'='+certificate_ids+'='+signer_id+'='+signer_pass+'='+signer_page)
- res.send({
- 'status':'error',
- 'message':'data parameter tidak lengkap'
- })
- }
- res.end()
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement