Server: create transaction refractoring
[oweals/peertube.git] / server / helpers / utils.js
1 'use strict'
2
3 const crypto = require('crypto')
4
5 const logger = require('./logger')
6
7 const utils = {
8   badRequest,
9   cleanForExit,
10   generateRandomString,
11   isTestInstance,
12   getFormatedObjects
13 }
14
15 function badRequest (req, res, next) {
16   res.type('json').status(400).end()
17 }
18
19 function generateRandomString (size, callback) {
20   crypto.pseudoRandomBytes(size, function (err, raw) {
21     if (err) return callback(err)
22
23     callback(null, raw.toString('hex'))
24   })
25 }
26
27 function cleanForExit (webtorrentProcess) {
28   logger.info('Gracefully exiting.')
29   process.kill(-webtorrentProcess.pid)
30 }
31
32 function isTestInstance () {
33   return (process.env.NODE_ENV === 'test')
34 }
35
36 function getFormatedObjects (objects, objectsTotal) {
37   const formatedObjects = []
38
39   objects.forEach(function (object) {
40     formatedObjects.push(object.toFormatedJSON())
41   })
42
43   return {
44     total: objectsTotal,
45     data: formatedObjects
46   }
47 }
48
49 // ---------------------------------------------------------------------------
50
51 module.exports = utils