]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/helpers/utils.js
3 const crypto
= require('crypto')
4 const retry
= require('async/retry')
6 const logger
= require('./logger')
18 function badRequest (req
, res
, next
) {
19 res
.type('json').status(400).end()
22 function generateRandomString (size
, callback
) {
23 crypto
.pseudoRandomBytes(size
, function (err
, raw
) {
24 if (err
) return callback(err
)
26 callback(null, raw
.toString('hex'))
30 function cleanForExit (webtorrentProcess
) {
31 logger
.info('Gracefully exiting.')
32 process
.kill(-webtorrentProcess
.pid
)
35 function isTestInstance () {
36 return (process
.env
.NODE_ENV
=== 'test')
39 function getFormatedObjects (objects
, objectsTotal
) {
40 const formatedObjects
= []
42 objects
.forEach(function (object
) {
43 formatedObjects
.push(object
.toFormatedJSON())
52 // { arguments, errorMessage }
53 function retryWrapper (functionToRetry
, options
, finalCallback
) {
54 const args
= options
.arguments
? options
.arguments : []
56 utils
.transactionRetryer(
58 return functionToRetry
.apply(this, args
.concat([ callback
]))
62 logger
.error(options
.errorMessage
, { error: err
})
65 // Do not return the error, continue the process
66 return finalCallback(null)
71 function transactionRetryer (func
, callback
) {
75 errorFilter: function (err
) {
76 const willRetry
= (err
.name
=== 'SequelizeDatabaseError')
77 logger
.debug('Maybe retrying the transaction function.', { willRetry
})
83 // ---------------------------------------------------------------------------
85 module
.exports
= utils