@@ -2,7 +2,7 @@ import SignPDF from './SignPDF.min.cjs';
2
2
import fs from 'node:fs' ;
3
3
import axios from 'axios' ;
4
4
import FormData from 'form-data' ;
5
- import plainplaceholder from './customSignPdf/plainplaceholder.min.js' ;
5
+ // import plainplaceholder from './customSignPdf/plainplaceholder.min.js';
6
6
import { plainAddPlaceholder } from 'node-signpdf/dist/helpers/index.js' ;
7
7
const serverUrl = process . env . SERVER_URL ,
8
8
APPID = process . env . APP_ID ,
@@ -19,20 +19,20 @@ async function uploadFile(a) {
19
19
console . log ( 'err ' , e ) , fs . unlinkSync ( a ) ;
20
20
}
21
21
}
22
- async function updateDoc ( t , s , r , i , o , n ) {
22
+ async function updateDoc ( t , s , r , i , n , o ) {
23
23
try {
24
24
var d = {
25
- UserPtr : { __type : 'Pointer' , className : n , objectId : r } ,
25
+ UserPtr : { __type : 'Pointer' , className : o , objectId : r } ,
26
26
SignedUrl : s ,
27
27
Activity : 'Signed' ,
28
28
ipAddress : i ,
29
29
} ;
30
30
let e ;
31
- var l = ( e = o . AuditTrail && 0 < o . AuditTrail . length ? [ ...o . AuditTrail , d ] : [ d ] ) . filter (
31
+ var l = ( e = n . AuditTrail && 0 < n . AuditTrail . length ? [ ...n . AuditTrail , d ] : [ d ] ) . filter (
32
32
e => 'Signed' === e . Activity
33
33
) ;
34
34
let a = ! 1 ;
35
- ! ( ( o . Signers && 0 < o . Signers . length && l . length !== o . Signers . length ) || ! ( a = ! 0 ) ) ;
35
+ ! ( ( n . Signers && 0 < n . Signers . length && l . length !== n . Signers . length ) || ! ( a = ! 0 ) ) ;
36
36
var p = { SignedUrl : s , AuditTrail : e , IsCompleted : a } ;
37
37
await axios . put ( serverUrl + '/classes/contracts_Document/' + t , p , {
38
38
headers : {
@@ -96,115 +96,135 @@ async function sendCompletedMail(e) {
96
96
} ,
97
97
} ) ;
98
98
}
99
- async function PDF ( s , r ) {
99
+ async function PDF ( i , n ) {
100
100
try {
101
- var i = s . params . sign ,
102
- e = s . params . docId ,
103
- o = s . params . userId ,
104
- n = await axios . get ( serverUrl + '/classes/contracts_Document/' + e + '?include=ExtUserPtr' , {
105
- headers : {
106
- 'Content-Type' : 'application/json' ,
107
- 'X-Parse-Application-Id' : APPID ,
108
- 'X-Parse-Master-Key' : masterKEY ,
109
- } ,
110
- } ) ,
111
- d = await axios . get ( serverUrl + '/users/me' , {
101
+ i . params . sign ;
102
+ var e = i . params . docId ,
103
+ a = i . params . userId ,
104
+ o = await axios . get (
105
+ serverUrl + '/classes/contracts_Document/' + e + '?include=ExtUserPtr,Signers' ,
106
+ {
107
+ headers : {
108
+ 'Content-Type' : 'application/json' ,
109
+ 'X-Parse-Application-Id' : APPID ,
110
+ 'X-Parse-Master-Key' : masterKEY ,
111
+ } ,
112
+ }
113
+ ) ,
114
+ t = await axios . get ( serverUrl + '/users/me' , {
112
115
headers : {
113
116
'X-Parse-Application-Id' : APPID ,
114
- 'X-Parse-Session-Token' : s . headers . sessiontoken ,
117
+ 'X-Parse-Session-Token' : i . headers . sessiontoken ,
115
118
} ,
116
119
} ) ;
117
- if ( ! d . data || ! d . data . objectId ) return { status : 'error' , message : 'this user not allowed!' } ;
120
+ if ( ! t . data || ! t . data . objectId ) return { status : 'error' , message : 'this user not allowed!' } ;
118
121
{
119
- var l ,
122
+ var d ,
123
+ l ,
120
124
p ,
121
- c ,
122
- m = JSON . stringify ( { objectId : o } ) ;
123
- let a , t ;
124
- t = o
125
- ? ( l = await axios . get ( serverUrl + '/classes/contracts_Contactbook?where=' + m , {
125
+ c = JSON . stringify ( { objectId : a } ) ;
126
+ let s , r ;
127
+ r = a
128
+ ? ( d = await axios . get ( serverUrl + '/classes/contracts_Contactbook?where=' + c , {
126
129
headers : {
127
130
'X-Parse-Application-Id' : APPID ,
128
- 'X-Parse-Session-Token' : s . headers . sessiontoken ,
131
+ 'X-Parse-Session-Token' : i . headers . sessiontoken ,
129
132
} ,
130
- } ) ) . data && 0 < l . data . results . length
131
- ? ( ( a = l ) , 'contracts_Contactbook' )
132
- : ( ( a = await axios . get ( serverUrl + '/classes/contracts_Users?where=' + m , {
133
- headers : {
134
- 'X-Parse-Application-Id' : APPID ,
135
- 'X-Parse-Master-Key' : masterKEY ,
136
- } ,
133
+ } ) ) . data && 0 < d . data . results . length
134
+ ? ( ( s = d ) , 'contracts_Contactbook' )
135
+ : ( ( s = await axios . get ( serverUrl + '/classes/contracts_Users?where=' + c , {
136
+ headers : { 'X-Parse-Application-Id' : APPID , 'X-Parse-Master-Key' : masterKEY } ,
137
137
} ) ) ,
138
138
'contracts_Users' )
139
- : ( ( p = JSON . stringify ( {
140
- UserId : { __type : 'Pointer' , className : '_User' , objectId : d . data . objectId } ,
139
+ : ( ( l = JSON . stringify ( {
140
+ UserId : { __type : 'Pointer' , className : '_User' , objectId : t . data . objectId } ,
141
141
} ) ) ,
142
- ( c = await axios . get ( serverUrl + '/classes/contracts_Users?where=' + p , {
143
- headers : {
144
- 'X-Parse-Application-Id' : APPID ,
145
- 'X-Parse-Master-Key' : masterKEY ,
146
- } ,
147
- } ) ) . data && 0 < c . data . results . length
148
- ? ( ( a = c ) , 'contracts_Users' )
149
- : ( ( a = await axios . get ( serverUrl + '/classes/contracts_Contactbook?where=' + p , {
142
+ ( p = await axios . get ( serverUrl + '/classes/contracts_Users?where=' + l , {
143
+ headers : { 'X-Parse-Application-Id' : APPID , 'X-Parse-Master-Key' : masterKEY } ,
144
+ } ) ) . data && 0 < p . data . results . length
145
+ ? ( ( s = p ) , 'contracts_Users' )
146
+ : ( ( s = await axios . get ( serverUrl + '/classes/contracts_Contactbook?where=' + l , {
150
147
headers : {
151
148
'X-Parse-Application-Id' : APPID ,
152
- 'X-Parse-Session-Token' : s . headers . sessiontoken ,
149
+ 'X-Parse-Session-Token' : i . headers . sessiontoken ,
153
150
} ,
154
151
} ) ) ,
155
152
'contracts_Contactbook' ) ) ;
156
- var g = a . data . results [ 0 ] . Name ,
157
- h = a . data . results [ 0 ] . Email ;
158
- if ( ! s . params . pdfFile ) return { status : 'error' , message : 'pdf file not present!' } ;
153
+ var m = s . data . results [ 0 ] . Name ,
154
+ g = s . data . results [ 0 ] . Email ;
155
+ if ( ! i . params . pdfFile ) return { status : 'error' , message : 'pdf file not present!' } ;
159
156
{
160
- let e = Buffer . from ( s . params . pdfFile , 'base64' ) ;
157
+ let e = Buffer . from ( i . params . pdfFile , 'base64' ) ;
161
158
var u = process . env . PFX_BASE64 ,
162
- f = Buffer . from ( u , 'base64' ) ;
163
- e = i
164
- ? plainplaceholder ( {
165
- pdfBuffer : e ,
166
- reason : 'Digitally signed by Open sign for ' + g + ' <' + h + '>' ,
167
- location : 'test location' ,
168
- signatureLength : 1e4 ,
169
- sign : i ,
170
- } )
171
- : plainAddPlaceholder ( {
172
- pdfBuffer : e ,
173
- reason : 'Digitally signed by Open sign for ' + g + ' <' + h + '>' ,
174
- location : 'test location' ,
175
- signatureLength : 1e4 ,
176
- } ) ;
177
- var y = await new SignPDF ( e , f ) . signPDF ( ) ,
178
- v = `./exports/exported_file_${ Math . floor ( 5e3 * Math . random ( ) ) } .pdf` ,
179
- P = ( fs . writeFileSync ( v , y ) , await uploadFile ( v ) ) ;
180
- if ( P && P . imageUrl ) {
181
- const r = await updateDoc (
182
- s . params . docId ,
183
- P . imageUrl ,
184
- a . data . results [ 0 ] . objectId ,
185
- s . headers [ 'x-real-ip' ] ,
186
- n . data ,
187
- t
159
+ h = Buffer . from ( u , 'base64' ) ,
160
+ f = {
161
+ UserPtr : { __type : 'Pointer' , className : r , objectId : s . data . results [ 0 ] . objectId } ,
162
+ SignedUrl : '' ,
163
+ Activity : 'Signed' ,
164
+ ipAddress : i . headers [ 'x-real-ip' ] ,
165
+ } ;
166
+ let a ;
167
+ var y = ( a =
168
+ o . data . AuditTrail && 0 < o . data . AuditTrail . length
169
+ ? [ ...o . data . AuditTrail , f ]
170
+ : [ f ] ) . filter ( e => 'Signed' === e . Activity ) ;
171
+ let t = ! 1 ;
172
+ ! (
173
+ ( o . data . Signers && 0 < o . data . Signers . length && y . length !== o . data . Signers . length ) ||
174
+ ! ( t = ! 0 )
175
+ ) ;
176
+ var v ,
177
+ P ,
178
+ x = `./exports/exported_file_${ Math . floor ( 5e3 * Math . random ( ) ) } .pdf` ,
179
+ A =
180
+ ( t
181
+ ? ( ( v = o . data . Signers ?. map ( e => e . Name + ' <' + e . Email + '>' ) ) ,
182
+ ( e =
183
+ v && 0 < v . length
184
+ ? plainAddPlaceholder ( {
185
+ pdfBuffer : e ,
186
+ reason : 'Digitally signed by Open sign for ' + v ?. join ( ', ' ) ,
187
+ location : 'location' ,
188
+ signatureLength : 1e4 ,
189
+ } )
190
+ : plainAddPlaceholder ( {
191
+ pdfBuffer : e ,
192
+ reason : 'Digitally signed by Open sign for ' + m + ' <' + g + '>' ,
193
+ location : 'location' ,
194
+ signatureLength : 1e4 ,
195
+ } ) ) ,
196
+ ( P = await new SignPDF ( e , h ) . signPDF ( ) ) ,
197
+ fs . writeFileSync ( x , P ) )
198
+ : fs . writeFileSync ( x , e ) ,
199
+ await uploadFile ( x ) ) ;
200
+ if ( A && A . imageUrl ) {
201
+ const n = await updateDoc (
202
+ i . params . docId ,
203
+ A . imageUrl ,
204
+ s . data . results [ 0 ] . objectId ,
205
+ i . headers [ 'x-real-ip' ] ,
206
+ o . data ,
207
+ r
188
208
) ;
189
209
return (
190
210
sendMail ( {
191
- url : P . imageUrl ,
192
- sender : { Mail : n . data . ExtUserPtr . Email , Name : n . data . ExtUserPtr . Name } ,
193
- pdfName : n . data . Name ,
194
- receiver : h ,
211
+ url : A . imageUrl ,
212
+ sender : { Mail : o . data . ExtUserPtr . Email , Name : o . data . ExtUserPtr . Name } ,
213
+ pdfName : o . data . Name ,
214
+ receiver : g ,
195
215
} ) ,
196
- r &&
197
- r . isCompleted &&
216
+ n &&
217
+ n . isCompleted &&
198
218
sendCompletedMail ( {
199
- url : P . imageUrl ,
200
- sender : { Mail : n . data . ExtUserPtr . Email , Name : 'Open sign' } ,
201
- pdfName : n . data . Name ,
202
- receiver : n . data . ExtUserPtr . Email ,
219
+ url : A . imageUrl ,
220
+ sender : { Mail : o . data . ExtUserPtr . Email , Name : 'Open sign' } ,
221
+ pdfName : o . data . Name ,
222
+ receiver : o . data . ExtUserPtr . Email ,
203
223
} ) ,
204
- fs . unlinkSync ( v ) ,
205
- console . log ( 'New Signed PDF created called: ' + v ) ,
206
- 'success' === r . message
207
- ? { status : 'success' , data : P . imageUrl }
224
+ fs . unlinkSync ( x ) ,
225
+ console . log ( 'New Signed PDF created called: ' + x ) ,
226
+ 'success' === n . message
227
+ ? { status : 'success' , data : A . imageUrl }
208
228
: { status : 'error' , message : 'please provide required parameters!' }
209
229
) ;
210
230
}
0 commit comments