1
1
/*
2
2
* to run create document group applet from the project root folder type in your console:
3
- * > node samples/applets/create-document-group <cliend_id> <client_secret> <username> <password> <group_name>
4
- * <cliend_id>, <client_secret>, <username>, <password>, <group_name> - are required params
3
+ * > node samples/applets/create-document-group <cliend_id> <client_secret> <username> <password> <group_name> <signature_stringified> <filepath>
4
+ * <cliend_id>, <client_secret>, <username>, <password>, <group_name>, <signature_stringified> - are required params
5
+ * <filepath> - is optional param. If empty, default will be './samples/files/pdf-sample.pdf'
5
6
*/
6
7
7
8
'use strict' ;
@@ -11,7 +12,9 @@ const [
11
12
clientSecret ,
12
13
username ,
13
14
password ,
14
- group_name
15
+ group_name ,
16
+ fieldsStringifed ,
17
+ filepath = './samples/files/pdf-sample.pdf' ,
15
18
] = process . argv . slice ( 2 ) ;
16
19
17
20
const api = require ( '../../lib' ) ( {
@@ -20,20 +23,14 @@ const api = require('../../lib')({
20
23
} ) ;
21
24
22
25
const {
23
- documentGroup : {
24
- create : createDocumentGroup
25
- } ,
26
- oauth2 : {
27
- requestToken : getAccessToken
28
- } ,
29
- folder : {
30
- documents : documentList ,
31
- list : foldersList ,
26
+ documentGroup : { create : createDocumentGroup } ,
27
+ oauth2 : { requestToken : getAccessToken } ,
28
+ document : {
29
+ create : createDocument ,
30
+ update : addFields ,
32
31
}
33
32
} = api ;
34
33
35
- const randomId = ( min , max = 10 ) => Math . round ( Math . random ( ) * ( max - min ) * min ) ;
36
-
37
34
getAccessToken ( {
38
35
username,
39
36
password
@@ -43,44 +40,62 @@ getAccessToken({
43
40
} else {
44
41
const { access_token : token } = tokenRes ;
45
42
46
- foldersList ( {
43
+ createDocument ( {
44
+ filepath,
47
45
token
48
- } , ( listErr , listRes ) => {
49
- if ( listErr ) {
50
- console . error ( listErr ) ;
46
+ } , ( createError , createResponse ) => {
47
+ if ( createError ) {
48
+ console . error ( createError ) ;
51
49
} else {
52
- const id = listRes . folders [ 1 ] . id ;
50
+ const { id } = createResponse ;
51
+ const client_timestamp = Math . floor ( Date . now ( ) / 1000 ) ;
52
+
53
+ let fields ;
54
+
55
+ try {
56
+ fields = JSON . parse ( fieldsStringifed )
57
+ } catch ( err ) {
58
+ console . error ( err ) ;
59
+ return ;
60
+ }
53
61
54
- documentList ( {
62
+ addFields ( {
63
+ fields : {
64
+ client_timestamp,
65
+ fields,
66
+ } ,
55
67
id,
56
- token
57
- } , ( docListErr , docListRes ) => {
58
- if ( docListErr ) {
59
- console . error ( docListErr ) ;
60
- } else {
61
- const documents = docListRes . documents || [ ] ;
62
- const validDocuments = documents . filter ( doc => {
63
- return ! doc . field_invites . length
64
- && doc . roles . length
65
- && doc . fields . length
66
- } ) ;
68
+ token,
69
+ } , ( addFieldsErr , addFieldsRes ) => {
70
+ if ( addFieldsErr ) {
71
+ console . error ( addFieldsErr ) ;
72
+ } else {
73
+ const { id : signedId } = addFieldsRes ;
67
74
68
- const idWithInviteFields = validDocuments [ randomId ( 1 , validDocuments . length ) ] . id ;
69
- const documentId = documents . filter ( doc => ! doc . field_invites . length ) [ randomId ( 1 ) ] . id ;
75
+ createDocument ( {
76
+ filepath,
77
+ token
78
+ } , ( createError , createResponse ) => {
79
+ if ( createError ) {
80
+ console . error ( createError ) ;
81
+ } else {
82
+ const { id } = createResponse ;
70
83
71
- createDocumentGroup ( {
84
+ createDocumentGroup ( {
72
85
token,
73
- document_ids : [ idWithInviteFields , documentId ] ,
86
+ document_ids : [ signedId , id ] ,
74
87
group_name
75
- } , ( createDocErr , createDocRes ) => {
76
- if ( createDocErr ) {
77
- console . error ( createDocErr , 'createDocError' ) ;
88
+ } , ( createDocGroupErr , createDocGroupRes ) => {
89
+ if ( createDocGroupErr ) {
90
+ console . error ( createDocGroupErr ) ;
78
91
} else {
79
- console . log ( createDocRes ) ;
92
+ console . log ( createDocGroupRes ) ;
80
93
}
81
94
} )
82
- }
83
- } ) ;
95
+ }
96
+ } )
97
+ }
98
+ } )
84
99
}
85
100
} )
86
101
}
0 commit comments