aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/helpers
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-06-02 18:15:41 +0200
committerChocobozzz <me@florianbigard.com>2021-06-02 18:15:41 +0200
commite030bfb59dd5ee65f20a64686ec9b22ca39f70ae (patch)
treec9a439159ef540291e3c030bcaf958b953442147 /server/helpers
parent463206948d6a9d46e7e68d55c7b763e601ecc870 (diff)
downloadPeerTube-e030bfb59dd5ee65f20a64686ec9b22ca39f70ae.tar.gz
PeerTube-e030bfb59dd5ee65f20a64686ec9b22ca39f70ae.tar.zst
PeerTube-e030bfb59dd5ee65f20a64686ec9b22ca39f70ae.zip
Refactor server errors handler
Diffstat (limited to 'server/helpers')
-rw-r--r--server/helpers/express-utils.ts32
1 files changed, 1 insertions, 31 deletions
diff --git a/server/helpers/express-utils.ts b/server/helpers/express-utils.ts
index 10a860787..010c6961a 100644
--- a/server/helpers/express-utils.ts
+++ b/server/helpers/express-utils.ts
@@ -8,7 +8,6 @@ import { isArray } from './custom-validators/misc'
8import { logger } from './logger' 8import { logger } from './logger'
9import { deleteFileAndCatch, generateRandomString } from './utils' 9import { deleteFileAndCatch, generateRandomString } from './utils'
10import { getExtFromMimetype } from './video' 10import { getExtFromMimetype } from './video'
11import { ProblemDocument, ProblemDocumentExtension } from 'http-problem-details'
12 11
13function buildNSFWFilter (res?: express.Response, paramNSFW?: string) { 12function buildNSFWFilter (res?: express.Response, paramNSFW?: string) {
14 if (paramNSFW === 'true') return true 13 if (paramNSFW === 'true') return true
@@ -126,34 +125,6 @@ function getCountVideos (req: express.Request) {
126 return req.query.skipCount !== true 125 return req.query.skipCount !== true
127} 126}
128 127
129// helpers added in server.ts and used in subsequent controllers used
130const apiResponseHelpers = (req, res: express.Response, next = null) => {
131 res.fail = (options) => {
132 const { data, status = HttpStatusCode.BAD_REQUEST_400, message, title, type, docs = res.docs, instance } = options
133
134 const extension = new ProblemDocumentExtension({
135 ...data,
136 docs,
137 // fields for <= 3.2 compatibility, deprecated
138 error: message,
139 code: type
140 })
141
142 res.status(status)
143 res.setHeader('Content-Type', 'application/problem+json')
144 res.json(new ProblemDocument({
145 status,
146 title,
147 instance,
148 // fields intended to replace 'error' and 'code' respectively
149 detail: message,
150 type: type && 'https://docs.joinpeertube.org/api-rest-reference.html#section/Errors/' + type
151 }, extension))
152 }
153
154 if (next) next()
155}
156
157// --------------------------------------------------------------------------- 128// ---------------------------------------------------------------------------
158 129
159export { 130export {
@@ -163,6 +134,5 @@ export {
163 badRequest, 134 badRequest,
164 createReqFiles, 135 createReqFiles,
165 cleanUpReqFiles, 136 cleanUpReqFiles,
166 getCountVideos, 137 getCountVideos
167 apiResponseHelpers
168} 138}