Advertisement
Guest User

Untitled

a guest
Jul 24th, 2019
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. app.post('/sign-async/:id', (req, res)=> {  
  2.   const id = req.params.id // training id
  3.   const certificate_ids = req.body.certificate_ids // array of tcs->id
  4.   const certificate_tokens = req.body.certificate_tokens // array of tcs->id
  5.   const front_signer_cities = req.body.front_signer_cities
  6.   const back_signer_cities = req.body.back_signer_cities
  7.   const signer_id = req.body.signer_id
  8.   const signer_pass = req.body.signer_pass
  9.   const signer_page = req.body.signer_page // 1 or 2
  10.   if(id && certificate_ids && front_signer_cities && back_signer_cities && signer_id && signer_pass && signer_page){
  11.     res.send({
  12.       'status':'success',
  13.       'message':'dokumen sedang ditandatangani..'
  14.     })
  15.     const dir = base_dir + '/' + id
  16.     //const endpoint_url = 'https://10.242.77.232/api/sign/pdf'
  17.     const endpoint_url = 'https://esign.kemenkeu.go.id/api/sign/pdf'
  18.     const endpoint_username = 'bsre'
  19.     const endpoint_password = 'securetransactions!!!'
  20.     certificate_ids.forEach((certificate_id, index, array) => {
  21.       let certificate_link = "https://semantik.bppk.kemenkeu.go.id/api/v2/open/certificate?token="+certificate_tokens[certificate_id]+"&status=final"
  22.       let source = dir + '/' + certificate_id + '-draft.pdf'
  23.       let target = dir + '/' + certificate_id + '-partial.pdf'
  24.       if (signer_page==1){
  25.         source = dir + '/' + certificate_id + '-partial.pdf'
  26.         target = dir + '/' + certificate_id + '.pdf'
  27.       }
  28.       let signer_city = front_signer_cities[index]
  29.       if (signer_page==2) signer_city = back_signer_cities[index]
  30.       try{
  31.         fs.readFile(source, (error, pdf) => {
  32.           if (!error) {
  33.             let form = new formData();
  34.             form.append('file', fs.createReadStream(source), {
  35.               filename: certificate_id + '.pdf'
  36.             });
  37.             axios.create({
  38.               headers: form.getHeaders()
  39.             }).post(endpoint_url, form, {
  40.                 params: {
  41.                   'nik': encodeURI(signer_id),
  42.                   'passphrase': encodeURI(signer_pass),
  43.                   'tampilan': 'visible',
  44.                   'jenis_dokumen': encodeURI('sertifikat pelatihan'),
  45.                   'nomor': encodeURI('1234'),
  46.                   'tujuan': encodeURI('peserta pelatihan'),
  47.                   'perihal': encodeURI('sertifikat pelatihan'),
  48.                   'info': encodeURI('informasi'),
  49.                   'image': false,
  50.                   'linkQR': encodeURI(certificate_link),
  51.                   'halaman': 'PERTAMA',
  52.                   'teks': 'teks',
  53.                   'xAxis': 40,
  54.                   'yAxis': 30,
  55.                   'width': 400,
  56.                   'height': 120
  57.                 },
  58.                 auth: {
  59.                   username: endpoint_username,
  60.                   password: endpoint_password
  61.                 },
  62.                 responseType: "stream"
  63.               }
  64.             ).then( (response) => {
  65.               response.data.pipe(fs.createWriteStream(target));
  66.               log('write ' + target + ' success');
  67.             })
  68.             .catch((response) => {
  69.               log(response)
  70.               log('write ' + target + ' failure');
  71.             });
  72.           }
  73.         })
  74.       } catch (error) {
  75.         log(error)
  76.       }  
  77.     })
  78.  
  79.   }
  80.   else{
  81.     log(id+'='+certificate_ids+'='+signer_id+'='+signer_pass+'='+signer_page)
  82.     res.send({
  83.       'status':'error',
  84.       'message':'data parameter tidak lengkap'
  85.     })
  86.   }
  87.   res.end()
  88. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement