'use strict'
const crypto = require('crypto')
+const retry = require('async/retry')
const logger = require('./logger')
badRequest,
cleanForExit,
generateRandomString,
- isTestInstance
+ isTestInstance,
+ getFormatedObjects,
+ transactionRetryer
}
function badRequest (req, res, next) {
return (process.env.NODE_ENV === 'test')
}
+function getFormatedObjects (objects, objectsTotal) {
+ const formatedObjects = []
+
+ objects.forEach(function (object) {
+ formatedObjects.push(object.toFormatedJSON())
+ })
+
+ return {
+ total: objectsTotal,
+ data: formatedObjects
+ }
+}
+
+function transactionRetryer (func, callback) {
+ retry({
+ times: 5,
+
+ errorFilter: function (err) {
+ const willRetry = (err.name === 'SequelizeDatabaseError')
+ logger.debug('Maybe retrying the transaction function.', { willRetry })
+ return willRetry
+ }
+ }, func, callback)
+}
+
// ---------------------------------------------------------------------------
module.exports = utils