1515 */
1616'use strict' ;
1717
18-
1918var requester = require ( './requester.js' ) ;
2019var mlutil = require ( './mlutil.js' ) ;
2120var Operation = require ( './operation.js' ) ;
@@ -869,15 +868,17 @@ function writeStreamImpl(document, categories) {
869868 requestOptions . path = mlutil . databaseParam ( connectionParams , endpoint , sep ) ;
870869 mlutil . addTxidHeaders ( requestOptions , txid ) ;
871870
872- // TODO: treat as chunked single document if no properties
873- var requestPartList = [ ] ;
874- addDocumentParts ( requestPartList , document , true ) ;
875-
876871 var operation = new Operation (
877872 'write document stream' , this . client , requestOptions , 'chunkedMultipart' , 'single'
878873 ) ;
879- operation . uri = document . uri ;
880- operation . requestDocument = requestPartList ;
874+ operation . isReplayable = false ;
875+ operation . uri = document . uri ;
876+
877+ // TODO: treat as chunked single document if no properties
878+ var requestPartList = [ ] ;
879+ addDocumentParts ( operation , requestPartList , document , true ) ;
880+ operation . requestDocument = requestPartList ;
881+
881882 operation . multipartBoundary = mlutil . multipartBoundary ;
882883 operation . errorTransform = uriErrorTransform ;
883884
@@ -1098,8 +1099,8 @@ function writeMetadata(document, categories) {
10981099/** @ignore */
10991100function writeContent ( contentOnly , document , requestParams , categories , requestType ) {
11001101 /*jshint validthis:true */
1101- var content = document . content ;
1102- var hasContent = ( content != null ) ;
1102+ var content = document . content ;
1103+ var hasContent = ( content != null ) ;
11031104
11041105 var endpoint = '/v1/documents' ;
11051106
@@ -1215,7 +1216,9 @@ function writeContent(contentOnly, document, requestParams, categories, requestT
12151216 operation . categories = categories ;
12161217 }
12171218 if ( hasContent ) {
1218- operation . requestBody = mlutil . marshal ( content ) ;
1219+ operation . requestBody = mlutil . marshal ( content , operation ) ;
1220+ } else {
1221+ operation . isReplayable = false ;
12191222 }
12201223 operation . outputTransform = singleWriteOutputTransform ;
12211224 operation . contentOnly = ( contentOnly === true ) ;
@@ -1229,11 +1232,6 @@ function writeDocumentList(contentOnly, documents, requestParams, categories) {
12291232 documents = documents . sort ( compareDocuments ) ;
12301233 }
12311234
1232- var requestPartList = [ ] ;
1233- for ( var i = 0 ; i < documents . length ; i ++ ) {
1234- addDocumentParts ( requestPartList , documents [ i ] , false ) ;
1235- }
1236-
12371235 var endpoint = '/v1/documents' ;
12381236
12391237 var txid = getTxid ( requestParams ) ;
@@ -1266,8 +1264,15 @@ function writeDocumentList(contentOnly, documents, requestParams, categories) {
12661264 if ( Array . isArray ( categories ) && categories . length > 0 ) {
12671265 operation . categories = categories ;
12681266 }
1267+
12691268 operation . multipartBoundary = multipartBoundary ;
1270- operation . requestPartList = requestPartList ;
1269+
1270+ var requestPartList = [ ] ;
1271+ for ( var i = 0 ; i < documents . length ; i ++ ) {
1272+ addDocumentParts ( operation , requestPartList , documents [ i ] , false ) ;
1273+ }
1274+ operation . requestPartList = requestPartList ;
1275+
12711276 operation . errorTransform = uriListErrorTransform ;
12721277 if ( contentOnly === true ) {
12731278 operation . subdata = [ 'documents' , 'uri' ] ;
@@ -1425,7 +1430,7 @@ function addWriteConfig(document, hasUri, content, headers, sep) {
14251430 return writeConfig ;
14261431}
14271432/** @ignore */
1428- function addDocumentParts ( partList , document , isContentOptional ) {
1433+ function addDocumentParts ( operation , partList , document , isContentOptional ) {
14291434 var uri = document . uri ;
14301435 var hasUri = ( uri != null ) ;
14311436
@@ -1464,7 +1469,7 @@ function addDocumentParts(partList, document, isContentOptional) {
14641469 headers [ 'Content-Disposition' ] = disposition + '; category=content' ;
14651470
14661471 if ( hasContent ) {
1467- part . content = mlutil . marshal ( content ) ;
1472+ part . content = mlutil . marshal ( content , operation ) ;
14681473 }
14691474
14701475 partList . push ( part ) ;
0 commit comments