]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/helpers/utils.ts
Update README schemas
[github/Chocobozzz/PeerTube.git] / server / helpers / utils.ts
CommitLineData
69818c93
C
1import * as express from 'express'
2
65fcc311 3import { pseudoRandomBytes } from 'crypto'
8c308c2b 4
65fcc311 5import { logger } from './logger'
cbe2f7c3 6
69818c93 7function badRequest (req: express.Request, res: express.Response, next: express.NextFunction) {
a6fd2b30
C
8 res.type('json').status(400).end()
9}
10
69818c93 11function generateRandomString (size: number, callback: (err: Error, randomString?: string) => void) {
65fcc311 12 pseudoRandomBytes(size, function (err, raw) {
cbe2f7c3
C
13 if (err) return callback(err)
14
15 callback(null, raw.toString('hex'))
16 })
9f10b292 17}
8c308c2b 18
e4c87ec2
C
19function createEmptyCallback () {
20 return function (err) {
21 if (err) logger.error('Error in empty callback.', { error: err })
22 }
23}
24
154898b0
C
25interface FormatableToJSON {
26 toFormatedJSON()
27}
28
29function getFormatedObjects<U, T extends FormatableToJSON> (objects: T[], objectsTotal: number) {
30 const formatedObjects: U[] = []
55fa55a9
C
31
32 objects.forEach(function (object) {
33 formatedObjects.push(object.toFormatedJSON())
34 })
35
36 return {
37 total: objectsTotal,
38 data: formatedObjects
39 }
40}
41
9f10b292 42// ---------------------------------------------------------------------------
c45f7f84 43
65fcc311
C
44export {
45 badRequest,
46 createEmptyCallback,
65fcc311 47 generateRandomString,
1840c2f7 48 getFormatedObjects
65fcc311 49}