07c1b3f51adffa1b01e042d211c8cba465be309c
[oweals/peertube.git] / server / helpers / utils.ts
1 import * as express from 'express'
2
3 import { pseudoRandomBytes } from 'crypto'
4
5 import { logger } from './logger'
6
7 function badRequest (req: express.Request, res: express.Response, next: express.NextFunction) {
8   res.type('json').status(400).end()
9 }
10
11 function generateRandomString (size: number, callback: (err: Error, randomString?: string) => void) {
12   pseudoRandomBytes(size, function (err, raw) {
13     if (err) return callback(err)
14
15     callback(null, raw.toString('hex'))
16   })
17 }
18
19 function createEmptyCallback () {
20   return function (err) {
21     if (err) logger.error('Error in empty callback.', { error: err })
22   }
23 }
24
25 function getFormatedObjects (objects: any[], objectsTotal: number) {
26   const formatedObjects = []
27
28   objects.forEach(function (object) {
29     formatedObjects.push(object.toFormatedJSON())
30   })
31
32   return {
33     total: objectsTotal,
34     data: formatedObjects
35   }
36 }
37
38 // ---------------------------------------------------------------------------
39
40 export {
41   badRequest,
42   createEmptyCallback,
43   generateRandomString,
44   getFormatedObjects
45 }