diff options
author | Rigel Kent <sendmemail@rigelk.eu> | 2021-06-01 01:36:53 +0200 |
---|---|---|
committer | Chocobozzz <chocobozzz@cpy.re> | 2021-06-02 16:57:07 +0200 |
commit | 76148b27f7501bac061992136852be4303370c8d (patch) | |
tree | fc0559253e833c9252fa14ebaec5321d88bfb4e8 /server/middlewares/validators/videos/video-live.ts | |
parent | 5ed25fb76e920dac364cb9ef46f14ec4bd372949 (diff) | |
download | PeerTube-76148b27f7501bac061992136852be4303370c8d.tar.gz PeerTube-76148b27f7501bac061992136852be4303370c8d.tar.zst PeerTube-76148b27f7501bac061992136852be4303370c8d.zip |
refactor API errors to standard error format
Diffstat (limited to 'server/middlewares/validators/videos/video-live.ts')
-rw-r--r-- | server/middlewares/validators/videos/video-live.ts | 61 |
1 files changed, 35 insertions, 26 deletions
diff --git a/server/middlewares/validators/videos/video-live.ts b/server/middlewares/validators/videos/video-live.ts index ec4c7f32f..9544fa4f5 100644 --- a/server/middlewares/validators/videos/video-live.ts +++ b/server/middlewares/validators/videos/video-live.ts | |||
@@ -30,7 +30,12 @@ const videoLiveGetValidator = [ | |||
30 | if (!checkUserCanManageVideo(user, res.locals.videoAll, UserRight.GET_ANY_LIVE, res, false)) return | 30 | if (!checkUserCanManageVideo(user, res.locals.videoAll, UserRight.GET_ANY_LIVE, res, false)) return |
31 | 31 | ||
32 | const videoLive = await VideoLiveModel.loadByVideoId(res.locals.videoAll.id) | 32 | const videoLive = await VideoLiveModel.loadByVideoId(res.locals.videoAll.id) |
33 | if (!videoLive) return res.sendStatus(HttpStatusCode.NOT_FOUND_404) | 33 | if (!videoLive) { |
34 | return res.fail({ | ||
35 | status: HttpStatusCode.NOT_FOUND_404, | ||
36 | message: 'Live video not found' | ||
37 | }) | ||
38 | } | ||
34 | 39 | ||
35 | res.locals.videoLive = videoLive | 40 | res.locals.videoLive = videoLive |
36 | 41 | ||
@@ -66,22 +71,25 @@ const videoLiveAddValidator = getCommonVideoEditAttributes().concat([ | |||
66 | if (CONFIG.LIVE.ENABLED !== true) { | 71 | if (CONFIG.LIVE.ENABLED !== true) { |
67 | cleanUpReqFiles(req) | 72 | cleanUpReqFiles(req) |
68 | 73 | ||
69 | return res.status(HttpStatusCode.FORBIDDEN_403) | 74 | return res.fail({ |
70 | .json({ error: 'Live is not enabled on this instance' }) | 75 | status: HttpStatusCode.FORBIDDEN_403, |
76 | message: 'Live is not enabled on this instance' | ||
77 | }) | ||
71 | } | 78 | } |
72 | 79 | ||
73 | if (CONFIG.LIVE.ALLOW_REPLAY !== true && req.body.saveReplay === true) { | 80 | if (CONFIG.LIVE.ALLOW_REPLAY !== true && req.body.saveReplay === true) { |
74 | cleanUpReqFiles(req) | 81 | cleanUpReqFiles(req) |
75 | 82 | ||
76 | return res.status(HttpStatusCode.FORBIDDEN_403) | 83 | return res.fail({ |
77 | .json({ error: 'Saving live replay is not allowed instance' }) | 84 | status: HttpStatusCode.FORBIDDEN_403, |
85 | message: 'Saving live replay is not allowed instance' | ||
86 | }) | ||
78 | } | 87 | } |
79 | 88 | ||
80 | if (req.body.permanentLive && req.body.saveReplay) { | 89 | if (req.body.permanentLive && req.body.saveReplay) { |
81 | cleanUpReqFiles(req) | 90 | cleanUpReqFiles(req) |
82 | 91 | ||
83 | return res.status(HttpStatusCode.BAD_REQUEST_400) | 92 | return res.fail({ message: 'Cannot set this live as permanent while saving its replay' }) |
84 | .json({ error: 'Cannot set this live as permanent while saving its replay' }) | ||
85 | } | 93 | } |
86 | 94 | ||
87 | const user = res.locals.oauth.token.User | 95 | const user = res.locals.oauth.token.User |
@@ -93,11 +101,11 @@ const videoLiveAddValidator = getCommonVideoEditAttributes().concat([ | |||
93 | if (totalInstanceLives >= CONFIG.LIVE.MAX_INSTANCE_LIVES) { | 101 | if (totalInstanceLives >= CONFIG.LIVE.MAX_INSTANCE_LIVES) { |
94 | cleanUpReqFiles(req) | 102 | cleanUpReqFiles(req) |
95 | 103 | ||
96 | return res.status(HttpStatusCode.FORBIDDEN_403) | 104 | return res.fail({ |
97 | .json({ | 105 | status: HttpStatusCode.FORBIDDEN_403, |
98 | code: ServerErrorCode.MAX_INSTANCE_LIVES_LIMIT_REACHED, | 106 | message: 'Cannot create this live because the max instance lives limit is reached.', |
99 | error: 'Cannot create this live because the max instance lives limit is reached.' | 107 | type: ServerErrorCode.MAX_INSTANCE_LIVES_LIMIT_REACHED.toString() |
100 | }) | 108 | }) |
101 | } | 109 | } |
102 | } | 110 | } |
103 | 111 | ||
@@ -107,11 +115,11 @@ const videoLiveAddValidator = getCommonVideoEditAttributes().concat([ | |||
107 | if (totalUserLives >= CONFIG.LIVE.MAX_USER_LIVES) { | 115 | if (totalUserLives >= CONFIG.LIVE.MAX_USER_LIVES) { |
108 | cleanUpReqFiles(req) | 116 | cleanUpReqFiles(req) |
109 | 117 | ||
110 | return res.status(HttpStatusCode.FORBIDDEN_403) | 118 | return res.fail({ |
111 | .json({ | 119 | status: HttpStatusCode.FORBIDDEN_403, |
112 | code: ServerErrorCode.MAX_USER_LIVES_LIMIT_REACHED, | 120 | type: ServerErrorCode.MAX_USER_LIVES_LIMIT_REACHED.toString(), |
113 | error: 'Cannot create this live because the max user lives limit is reached.' | 121 | message: 'Cannot create this live because the max user lives limit is reached.' |
114 | }) | 122 | }) |
115 | } | 123 | } |
116 | } | 124 | } |
117 | 125 | ||
@@ -133,18 +141,18 @@ const videoLiveUpdateValidator = [ | |||
133 | if (areValidationErrors(req, res)) return | 141 | if (areValidationErrors(req, res)) return |
134 | 142 | ||
135 | if (req.body.permanentLive && req.body.saveReplay) { | 143 | if (req.body.permanentLive && req.body.saveReplay) { |
136 | return res.status(HttpStatusCode.BAD_REQUEST_400) | 144 | return res.fail({ message: 'Cannot set this live as permanent while saving its replay' }) |
137 | .json({ error: 'Cannot set this live as permanent while saving its replay' }) | ||
138 | } | 145 | } |
139 | 146 | ||
140 | if (CONFIG.LIVE.ALLOW_REPLAY !== true && req.body.saveReplay === true) { | 147 | if (CONFIG.LIVE.ALLOW_REPLAY !== true && req.body.saveReplay === true) { |
141 | return res.status(HttpStatusCode.FORBIDDEN_403) | 148 | return res.fail({ |
142 | .json({ error: 'Saving live replay is not allowed instance' }) | 149 | status: HttpStatusCode.FORBIDDEN_403, |
150 | message: 'Saving live replay is not allowed instance' | ||
151 | }) | ||
143 | } | 152 | } |
144 | 153 | ||
145 | if (res.locals.videoAll.state !== VideoState.WAITING_FOR_LIVE) { | 154 | if (res.locals.videoAll.state !== VideoState.WAITING_FOR_LIVE) { |
146 | return res.status(HttpStatusCode.BAD_REQUEST_400) | 155 | return res.fail({ message: 'Cannot update a live that has already started' }) |
147 | .json({ error: 'Cannot update a live that has already started' }) | ||
148 | } | 156 | } |
149 | 157 | ||
150 | // Check the user can manage the live | 158 | // Check the user can manage the live |
@@ -180,9 +188,10 @@ async function isLiveVideoAccepted (req: express.Request, res: express.Response) | |||
180 | if (!acceptedResult || acceptedResult.accepted !== true) { | 188 | if (!acceptedResult || acceptedResult.accepted !== true) { |
181 | logger.info('Refused local live video.', { acceptedResult, acceptParameters }) | 189 | logger.info('Refused local live video.', { acceptedResult, acceptParameters }) |
182 | 190 | ||
183 | res.status(HttpStatusCode.FORBIDDEN_403) | 191 | res.fail({ |
184 | .json({ error: acceptedResult.errorMessage || 'Refused local live video' }) | 192 | status: HttpStatusCode.FORBIDDEN_403, |
185 | 193 | message: acceptedResult.errorMessage || 'Refused local live video' | |
194 | }) | ||
186 | return false | 195 | return false |
187 | } | 196 | } |
188 | 197 | ||