@@ -45,78 +45,73 @@ class requestNode extends Node {
4545 const finalUrl = computeVariables ( this . nodeData . url , variablesDict ) ;
4646
4747 // step 3
48- const options = this . formulateRequest ( finalUrl , variablesDict ) ;
48+ const rawRequest = this . formulateRequest ( finalUrl , variablesDict ) ;
4949
5050 console . log ( chalk . green ( ` ✓ ` ) + chalk . dim ( `type = ${ this . nodeData . requestType . toUpperCase ( ) } ` ) ) ;
5151 console . log ( chalk . green ( ` ✓ ` ) + chalk . dim ( `url = ${ finalUrl } ` ) ) ;
5252
53- const res = await this . runHttpRequest ( options ) ;
53+ const { request , response } = await this . runHttpRequest ( rawRequest ) ;
5454
55- if ( this . nodeData . requestBody . type === 'form-data' ) {
56- // we don't want to send full file value
57- options . data . value = '<BASE64_ENCODED_FILE_DATA>' ;
58- }
59-
60- if ( res . error ) {
61- console . log ( chalk . red ( ` ✕ ` ) + chalk . dim ( `Request failed: ${ JSON . stringify ( res . error ) } ` ) ) ;
55+ if ( response . error ) {
56+ console . log ( chalk . red ( ` ✕ ` ) + chalk . dim ( `Request failed: ${ JSON . stringify ( response . error ) } ` ) ) ;
6257 this . logger . add ( LogLevel . ERROR , 'HTTP request failed' , {
6358 type : 'requestNode' ,
6459 data : {
65- request : { type : options . method , url : options . url , data : options . data } ,
66- response : res . error ,
60+ request,
61+ response : response . error ,
6762 preReqVars : evalVariables ,
6863 } ,
6964 } ) ;
7065 return {
7166 status : 'Failed' ,
7267 } ;
7368 } else {
74- console . log ( chalk . green ( ` ✓ ` ) + chalk . dim ( `Request successful: ${ JSON . stringify ( res ) } ` ) ) ;
69+ console . log ( chalk . green ( ` ✓ ` ) + chalk . dim ( `Request successful: ${ JSON . stringify ( response ) } ` ) ) ;
7570 if ( this . nodeData . postRespVars ) {
76- const evalPostRespVars = computeNodeVariables ( this . nodeData . postRespVars , res . data ) ;
71+ const evalPostRespVars = computeNodeVariables ( this . nodeData . postRespVars , response . data ) ;
7772 this . logger . add ( LogLevel . INFO , 'HTTP request success' , {
7873 type : 'requestNode' ,
7974 data : {
80- request : { type : options . method , url : options . url , data : options . data } ,
81- response : res ,
75+ request,
76+ response,
8277 preReqVars : evalVariables ,
8378 postRespVars : evalPostRespVars ,
8479 } ,
8580 } ) ;
8681 return {
8782 status : 'Success' ,
88- data : res . data ,
83+ data : response . data ,
8984 postRespVars : evalPostRespVars ,
9085 } ;
9186 }
9287 this . logger . add ( LogLevel . INFO , 'HTTP request success' , {
9388 type : 'requestNode' ,
9489 data : {
95- request : { type : options . method , url : options . url , data : options . data } ,
96- response : res ,
90+ request,
91+ response,
9792 preReqVars : evalVariables ,
9893 } ,
9994 } ) ;
10095 return {
10196 status : 'Success' ,
102- data : res . data ,
97+ data : response . data ,
10398 } ;
10499 }
105100 }
106101
107102 formulateRequest ( finalUrl , variablesDict ) {
108103 let restMethod = this . nodeData . requestType . toLowerCase ( ) ;
109- let contentType = 'application/json' ;
104+ let headers = { } ;
110105 let requestData = undefined ;
111106
112107 if ( this . nodeData . requestBody ) {
113108 if ( this . nodeData . requestBody . type === 'raw-json' ) {
114- contentType = 'application/json' ;
109+ headers [ 'content-type' ] = 'application/json' ;
115110 requestData = this . nodeData . requestBody . body
116111 ? JSON . parse ( computeVariables ( this . nodeData . requestBody . body , variablesDict ) )
117112 : JSON . parse ( '{}' ) ;
118113 } else if ( this . nodeData . requestBody . type === 'form-data' ) {
119- contentType = 'multipart/form-data' ;
114+ headers [ 'content-type' ] = 'multipart/form-data' ;
120115 const params = cloneDeep ( this . nodeData . requestBody . body ) ;
121116 requestData = params ;
122117 }
@@ -125,9 +120,7 @@ class requestNode extends Node {
125120 const options = {
126121 method : restMethod ,
127122 url : finalUrl ,
128- headers : {
129- 'content-type' : contentType ,
130- } ,
123+ headers,
131124 data : requestData ,
132125 } ;
133126
@@ -141,6 +134,7 @@ class requestNode extends Node {
141134 }
142135
143136 async runHttpRequest ( request ) {
137+ let requestSent ;
144138 try {
145139 if ( request . headers [ 'content-type' ] === 'multipart/form-data' ) {
146140 const formData = new FormData ( ) ;
@@ -161,34 +155,51 @@ class requestNode extends Node {
161155 extend ( request . headers , formData . getHeaders ( ) ) ;
162156 }
163157
164- // assuming 'application/json' type
165- const options = {
158+ requestSent = {
159+ url : request . url ,
160+ method : request . method ,
161+ headers : request . headers ,
162+ // form data obj gets serialized here so that it can be sent over wire
163+ // otherwise ipc communication errors out
164+ data : JSON . parse ( JSON . stringify ( request . data ) ) ,
165+ } ;
166+
167+ const result = await axios ( {
166168 ...request ,
167169 signal : newAbortSignal ( ) ,
168- } ;
170+ } ) ;
169171
170- const result = await axios ( options ) ;
171172 return {
172- status : result . status ,
173- statusText : result . statusText ,
174- data : result . data ,
175- headers : result . headers ,
173+ request : requestSent ,
174+ response : {
175+ status : result . status ,
176+ statusText : result . statusText ,
177+ data : result . data ,
178+ headers : result . headers ,
179+ } ,
176180 } ;
177181 } catch ( error ) {
178182 if ( error ?. response ) {
179183 return {
180- error : {
181- status : error . response . status ,
182- statusText : error . response . statusText ,
183- data : error . response . data ,
184+ request : requestSent ,
185+ response : {
186+ error : {
187+ status : error . response . status ,
188+ statusText : error . response . statusText ,
189+ data : error . response . data ,
190+ headers : error . response . headers ,
191+ } ,
184192 } ,
185193 } ;
186194 } else {
187195 return {
188- error : {
189- status : '' ,
190- statusText : '' ,
191- data : `An error occurred while running the request : ${ error ?. message } ` ,
196+ request : requestSent ,
197+ response : {
198+ error : {
199+ status : '' ,
200+ statusText : '' ,
201+ data : `An error occurred while running the request : ${ error ?. message } ` ,
202+ } ,
192203 } ,
193204 } ;
194205 }
0 commit comments