]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - server/helpers/utils.ts
Update README schemas
[github/Chocobozzz/PeerTube.git] / server / helpers / utils.ts
... / ...
CommitLineData
1import * as express from 'express'
2
3import { pseudoRandomBytes } from 'crypto'
4
5import { logger } from './logger'
6
7function badRequest (req: express.Request, res: express.Response, next: express.NextFunction) {
8 res.type('json').status(400).end()
9}
10
11function 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
19function createEmptyCallback () {
20 return function (err) {
21 if (err) logger.error('Error in empty callback.', { error: err })
22 }
23}
24
25interface FormatableToJSON {
26 toFormatedJSON()
27}
28
29function getFormatedObjects<U, T extends FormatableToJSON> (objects: T[], objectsTotal: number) {
30 const formatedObjects: U[] = []
31
32 objects.forEach(function (object) {
33 formatedObjects.push(object.toFormatedJSON())
34 })
35
36 return {
37 total: objectsTotal,
38 data: formatedObjects
39 }
40}
41
42// ---------------------------------------------------------------------------
43
44export {
45 badRequest,
46 createEmptyCallback,
47 generateRandomString,
48 getFormatedObjects
49}