@@ -7,6 +7,8 @@ const ConnectionConfig = require('./connectionConfig')
77const WOQL = require ( './woql' )
88const WOQLQuery = require ( './query/woqlBuilder' )
99const { default : axios } = require ( 'axios' )
10+ const FormData = require ( 'form-data' ) ;
11+ const fs = require ( 'fs' ) ;
1012
1113/**
1214 * @license Apache Version 2
@@ -532,8 +534,25 @@ WOQLClient.prototype.query = function(woql, commitMsg, allWitnesses) {
532534 if ( woql && woql . json && ( ! woql . containsUpdate ( ) || commitMsg ) ) {
533535 let doql = woql . containsUpdate ( ) ? this . generateCommitInfo ( commitMsg ) : { }
534536 doql . query = woql . json ( )
537+
538+ let postBody ;
539+
540+ if ( doql . query . resource . source . post ) {
541+ const fileName = doql . query . resource . source . post . split ( '/' ) . pop ( ) ;
542+
543+ const formData = new FormData ( ) ;
544+ formData . append ( 'file' , fs . createReadStream ( doql . query . resource . source . post ) ) ;
545+ doql . query . resource . source . post = fileName ;
546+ formData . append ( 'payload' , Buffer . from ( JSON . stringify ( doql ) ) , { filename : 'body.json' , contentType : 'application/json' } ) ;
547+ this . customHeaders ( formData . getHeaders ( ) ) ;
548+
549+ postBody = formData ;
550+ } else {
551+ postBody = doql ;
552+ }
553+
535554 if ( allWitnesses ) doql . all_witnesses = true
536- return this . dispatch ( CONST . WOQL_QUERY , this . connectionConfig . queryURL ( ) , doql )
555+ return this . dispatch ( CONST . WOQL_QUERY , this . connectionConfig . queryURL ( ) , postBody )
537556 }
538557 let errmsg = `WOQL query parameter error`
539558 if ( woql && woql . json && woql . containsUpdate ( ) && ! commitMsg ) {
0 commit comments