77const request = require ( './rest.js' ) ;
88
99var domainName , username , password , timeout ;
10+ var prettyprint = false ;
1011var url ;
1112
1213function checkForErrors ( inBody )
@@ -16,21 +17,29 @@ function checkForErrors(inBody)
1617
1718}
1819
19- function init ( inDomainName , inUsername , inPassword , inTimeout ) {
20+ function init ( inDomainName , inUsername , inPassword , inTimeout , inPrettyprint ) {
2021 domainName = inDomainName ;
2122 username = inUsername ;
2223 password = inPassword ;
2324 timeout = inTimeout ;
24- url = "https://" + domainName + "/enterprise/v1/rest/projects" ;
25- //console.log("Username [" + username + "]");
26- //console.log("URL [" + url + "]");
27- //console.log("Timeout [" + timeout + "]");
28- }
25+ prettyprint = inPrettyprint ;
2926
30- function processResponse ( data , status )
31- {
27+ url = "https://" + domainName + "/apis/v1/rest/projects" ;
28+ }
3229
33- console . log ( JSON . stringify ( data ) ) ;
30+ /**
31+ * Call back function to process REST response
32+ * @param {return data from REST request } data
33+ * @param {status } status
34+ */
35+ function processResponse ( data , status ) {
36+ if ( prettyprint == true ) {
37+ console . log ( JSON . stringify ( data , null , 4 ) ) ;
38+ }
39+ else {
40+ console . log ( JSON . stringify ( data ) ) ;
41+ }
42+
3443 if ( status != 0 ) {
3544 process . exit ( status ) ;
3645 }
@@ -42,6 +51,11 @@ function list(projectId){
4251 request . get ( url , username , password , timeout , processResponse ) ;
4352}
4453
54+ function listAssets ( projectId ) {
55+ if ( projectId ) url += "/" + projectId + "/assets" ;
56+ request . get ( url , username , password , timeout , processResponse ) ;
57+ }
58+
4559function create ( projectName ) {
4660 var data = { "name" :projectName } ;
4761 request . post ( url , username , password , timeout , data , processResponse ) ;
@@ -54,7 +68,52 @@ function update(projectId, projectName){
5468 request . put ( url , username , password , timeout , data , processResponse ) ;
5569}
5670
71+ function del ( projectId ) {
72+
73+ url += "/" + projectId ;
74+ var data = { } ;
75+ request . httpDelete ( url , username , password , timeout , data , processResponse ) ;
76+ }
77+
78+
79+
80+ /**
81+ * Pushes a deployment to a destination tenant
82+ * @param {deployment name } name
83+ * @param {tenant username } destTenantuser
84+ * @param {tenant password } destTenantPw
85+ * @param {tenant url } destTenantDomainName
86+ * @param {assets to publish } assets
87+ */
88+ function pub ( projectId , publishName , targetTenantDomainName , targetUserId , targetUserPassword , assetsJson ) {
89+ //{"output":{"workflows":["fla73a20e13dd6736cf9c355","fl3cfd145262bbc5d44acff3"],"flows":["mapLeads"],"rest_api":[],"soap_api":[],"listener":[],"messaging":[]}}
90+ url += "/" + projectId + "/push" ;
91+
92+ var jsonStr = '{' ;
93+ jsonStr += '"name": "' + publishName + '",' ;
94+ jsonStr += '"destination_tenant_detail": {' ;
95+ jsonStr += '"username": "' + targetUserId + '",' ;
96+ jsonStr += '"password": "' + targetUserPassword + '",' ;
97+ jsonStr += '"url": "' + "https://" + targetTenantDomainName + '"' ;
98+ jsonStr += '},' ;
99+ assetsJson = assetsJson . replace ( / \" f l o w s \" / g, "\"flow_services\"" ) ;
100+ jsonStr += assetsJson . substring ( 11 , assetsJson . length - 2 ) ;
101+ jsonStr += "}" ;
57102
103+ data = JSON . parse ( jsonStr ) ;
104+ request . post ( url , username , password , timeout , data , processResponse )
105+ }
58106
107+ /**
108+ *
109+ * @param {publish name } publishName
110+ * @param {version number } version
111+ */
112+ function deploy ( projectName , version )
113+ {
114+ url += "/" + projectName + "/deploy" ;
115+ data = { "version" :parseInt ( version ) } ;
116+ request . post ( url , username , password , timeout , data , processResponse ) ;
117+ }
59118
60- module . exports = { init, list, create, update } ;
119+ module . exports = { init, list, listAssets , create, update, del , pub , deploy } ;
0 commit comments