1
- const randomId = ( ) => Math . floor ( 1000 + Math . random ( ) * 9000 ) ;
1
+ import axios from 'axios' ;
2
+
2
3
export default async function createDocumentWithTemplate ( request , response ) {
3
4
const signers = request . body . signers ;
4
5
const folderId = request . body . folderId ;
@@ -27,6 +28,7 @@ export default async function createDocumentWithTemplate(request, response) {
27
28
let updateSigners = template ?. Placeholders ?. every ( y =>
28
29
signers ?. some ( x => x . Role === y . Role )
29
30
) ;
31
+
30
32
if ( isValid && updateSigners ) {
31
33
const folderPtr = {
32
34
__type : 'Pointer' ,
@@ -44,47 +46,62 @@ export default async function createDocumentWithTemplate(request, response) {
44
46
}
45
47
let templateSigner = template ?. Signers ? template ?. Signers : [ ] ;
46
48
if ( signers && signers . length > 0 ) {
47
- let parseSigners ;
48
- if ( base64File ) {
49
- parseSigners = signers ;
50
- } else {
51
- parseSigners = JSON . parse ( signers ) ;
52
- }
49
+ let parseSigners = [ ...signers ] ;
53
50
let createContactUrl = protocol + '/v1/createcontact' ;
54
51
55
52
let contact = [ ] ;
56
53
for ( const obj of parseSigners ) {
57
54
const body = {
58
- name : obj ?. name || '' ,
59
- email : obj ?. email || '' ,
60
- phone : obj ?. phone || '' ,
55
+ name : obj ?. Name || '' ,
56
+ email : obj ?. Email || '' ,
57
+ phone : obj ?. Phone || '' ,
61
58
} ;
62
59
try {
63
60
const res = await axios . post ( createContactUrl , body , {
64
61
headers : { 'Content-Type' : 'application/json' , 'x-api-token' : reqToken } ,
65
62
} ) ;
66
- // console.log('res ', res.data);
67
- contact . push ( {
63
+ const contactPtr = {
68
64
__type : 'Pointer' ,
69
65
className : 'contracts_Contactbook' ,
70
66
objectId : res . data ?. objectId ,
71
- } ) ;
67
+ } ;
68
+ const newObj = { ...obj , contactPtr : contactPtr } ;
69
+ contact . push ( newObj ) ;
72
70
} catch ( err ) {
73
- // console.log('err ', err.response );
71
+ console . log ( 'err ' , err ) ;
74
72
if ( err ?. response ?. data ?. objectId ) {
75
- contact . push ( {
73
+ const contactPtr = {
76
74
__type : 'Pointer' ,
77
75
className : 'contracts_Contactbook' ,
78
76
objectId : err . response . data ?. objectId ,
79
- } ) ;
77
+ } ;
78
+ const newObj = { ...obj , contactPtr : contactPtr } ;
79
+ contact . push ( newObj ) ;
80
80
}
81
81
}
82
82
}
83
- object . set ( 'Signers' , [ ...templateSigner , ...contact ] ) ;
83
+ const contactPtrs = contact . map ( x => x . contactPtr ) ;
84
+ object . set ( 'Signers' , [ ...templateSigner , ...contactPtrs ] ) ;
85
+
86
+ let updatedPlaceholder = template ?. Placeholders ?. map ( x => {
87
+ let matchingSigner = contact . find ( y => x . Role && x . Role === y . Role ) ;
88
+
89
+ if ( matchingSigner ) {
90
+ return {
91
+ ...x ,
92
+ signerObjId : matchingSigner ?. contactPtr ?. objectId ,
93
+ signerPtr : matchingSigner ?. contactPtr ,
94
+ } ;
95
+ } else {
96
+ return {
97
+ ...x ,
98
+ } ;
99
+ }
100
+ } ) ;
101
+ object . set ( 'Placeholders' , updatedPlaceholder ) ;
84
102
} else {
85
103
object . set ( 'Signers' , templateSigner ) ;
86
104
}
87
-
88
105
object . set ( 'URL' , template . URL ) ;
89
106
object . set ( 'CreatedBy' , template . CreatedBy ) ;
90
107
object . set ( 'ExtUserPtr' , template . ExtUserPtr ) ;
@@ -121,4 +138,4 @@ export default async function createDocumentWithTemplate(request, response) {
121
138
}
122
139
return response . status ( 400 ) . json ( { error : 'Something went wrong!' } ) ;
123
140
}
124
- }
141
+ }
0 commit comments