31
31
#include " Basics/tri-strings.h"
32
32
#include " Cluster/Serv
8000
erState.h"
33
33
#include " Meta/conversion.h"
34
+ #include " Rest/CommonDefines.h"
34
35
#include " Rest/HttpRequest.h"
35
36
#include " Transaction/Methods.h"
36
37
#include " Transaction/StandaloneContext.h"
@@ -258,24 +259,7 @@ std::string RestVocbaseBaseHandler::assembleDocumentId(
258
259
void RestVocbaseBaseHandler::generateSaved (
259
260
arangodb::OperationResult const & result, std::string const & collectionName,
260
261
TRI_col_type_e type, VPackOptions const * options, bool isMultiple) {
261
- if (result._options .waitForSync ) {
262
- resetResponse (rest::ResponseCode::CREATED);
263
- } else {
264
- resetResponse (rest::ResponseCode::ACCEPTED);
265
- }
266
-
267
- if (isMultiple && !result.countErrorCodes .empty ()) {
268
- VPackBuilder errorBuilder;
269
- errorBuilder.openObject ();
270
- for (auto const & it : result.countErrorCodes ) {
271
- errorBuilder.add (basics::StringUtils::itoa (it.first ),
272
- VPackValue (it.second ));
273
- }
274
- errorBuilder.close ();
275
- _response->setHeaderNC (StaticStrings::ErrorCodes, errorBuilder.toJson ());
276
- }
277
-
278
- generate20x (result, collectionName, type, options);
262
+ generate20x (result, collectionName, type, options, isMultiple, rest::ResponseCode::CREATED);
279
263
}
280
264
281
265
// //////////////////////////////////////////////////////////////////////////////
@@ -284,13 +268,8 @@ void RestVocbaseBaseHandler::generateSaved(
284
268
285
269
void RestVocbaseBaseHandler::generateDeleted (
286
270
arangodb::OperationResult const & result, std::string const & collectionName,
287
- TRI_col_type_e type, VPackOptions const * options) {
288
- if (result._options .waitForSync ) {
289
- resetResponse (rest::ResponseCode::OK);
290
- } else {
291
- resetResponse (rest::ResponseCode::ACCEPTED);
292
- }
293
- generate20x (result, collectionName, type, options);
271
+ TRI_col_type_e type, VPackOptions const * options, bool isMultiple) {
272
+ generate20x (result, collectionName, type, options, isMultiple, rest::ResponseCode::OK);
294
273
}
295
274
296
275
// //////////////////////////////////////////////////////////////////////////////
@@ -299,7 +278,27 @@ void RestVocbaseBaseHandler::generateDeleted(
299
278
300
279
void RestVocbaseBaseHandler::generate20x (
301
280
arangodb::OperationResult const & result, std::string const & collectionName,
302
- TRI_col_type_e type, VPackOptions const * options) {
281
+ TRI_col_type_e type, VPackOptions const * options, bool isMultiple,
282
+ rest::ResponseCode waitForSyncResponseCode) {
283
+
284
+ if (result._options .waitForSync ) {
285
+ resetResponse (waitForSyncResponseCode);
286
+ } else {
287
+ resetResponse (rest::ResponseCode::ACCEPTED);
288
+ }
289
+
290
+
291
+ if (isMultiple && !result.countErrorCodes .empty ()) {
292
+ VPackBuilder errorBuilder;
293
+ errorBuilder.openObject ();
294
+ for (auto const & it : result.countErrorCodes ) {
295
+ errorBuilder.add (basics::StringUtils::itoa (it.first ),
296
+ VPackValue (it.second ));
297
+ }
298
+ errorBuilder.close ();
299
+ _response->setHeaderNC (StaticStrings::ErrorCodes, errorBuilder.toJson ());
300
+ }
301
+
303
302
VPackSlice slice = result.slice ();
304
303
if (slice.isNone ()) {
305
304
// will happen if silent == true
0 commit comments