mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2024-11-26 02:30:37 -06:00
fix(server/video-view): log invalid currentTime req (#6288)
* fix(server/video-view): log invalid currentTime req relates to #6285 * Styling --------- Co-authored-by: Chocobozzz <me@florianbigard.com>
This commit is contained in:
parent
855def80f6
commit
26de1467e2
@ -1,11 +1,11 @@
|
||||
import { HttpStatusCode } from '@peertube/peertube-models'
|
||||
import { logger } from '@server/helpers/logger.js'
|
||||
import express from 'express'
|
||||
import { ProblemDocument, ProblemDocumentExtension } from 'http-problem-details'
|
||||
import { logger } from '@server/helpers/logger.js'
|
||||
import { HttpStatusCode } from '@peertube/peertube-models'
|
||||
|
||||
function apiFailMiddleware (req: express.Request, res: express.Response, next: express.NextFunction) {
|
||||
res.fail = options => {
|
||||
const { status = HttpStatusCode.BAD_REQUEST_400, message, title, type, data, instance, tags } = options
|
||||
const { status = HttpStatusCode.BAD_REQUEST_400, message, title, type, data, instance, tags, logLevel = 'debug' } = options
|
||||
|
||||
const extension = new ProblemDocumentExtension({
|
||||
...data,
|
||||
@ -29,7 +29,7 @@ function apiFailMiddleware (req: express.Request, res: express.Response, next: e
|
||||
: undefined
|
||||
}, extension)
|
||||
|
||||
logger.debug('Bad HTTP request.', { json, tags })
|
||||
logger.log(logLevel, 'Bad HTTP request.', { json, tags })
|
||||
|
||||
res.status(status)
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
import express from 'express'
|
||||
import { body, param } from 'express-validator'
|
||||
import { HttpStatusCode } from '@peertube/peertube-models'
|
||||
import { isVideoTimeValid } from '@server/helpers/custom-validators/video-view.js'
|
||||
import { getCachedVideoDuration } from '@server/lib/video.js'
|
||||
import { LocalVideoViewerModel } from '@server/models/view/local-video-viewer.js'
|
||||
import express from 'express'
|
||||
import { body, param } from 'express-validator'
|
||||
import { isIdValid, toIntOrNull } from '../../../helpers/custom-validators/misc.js'
|
||||
import { areValidationErrors, doesVideoExist, isValidVideoIdParam } from '../shared/index.js'
|
||||
|
||||
@ -42,10 +42,12 @@ const videoViewValidator = [
|
||||
const video = res.locals.onlyImmutableVideo
|
||||
const { duration } = await getCachedVideoDuration(video.id)
|
||||
|
||||
if (!isVideoTimeValid(req.body.currentTime, duration)) {
|
||||
const currentTime = req.body.currentTime
|
||||
if (!isVideoTimeValid(currentTime, duration)) {
|
||||
return res.fail({
|
||||
status: HttpStatusCode.BAD_REQUEST_400,
|
||||
message: 'Current time is invalid'
|
||||
message: `Current time ${currentTime} is invalid (video ${video.uuid} duration: ${duration})`,
|
||||
logLevel: 'warn'
|
||||
})
|
||||
}
|
||||
|
||||
@ -56,6 +58,6 @@ const videoViewValidator = [
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
export {
|
||||
videoViewValidator,
|
||||
getVideoLocalViewerValidator
|
||||
getVideoLocalViewerValidator, videoViewValidator
|
||||
}
|
||||
|
||||
|
3
server/core/types/express.d.ts
vendored
3
server/core/types/express.d.ts
vendored
@ -1,4 +1,4 @@
|
||||
import { HttpMethodType, PeerTubeProblemDocumentData, VideoCreate } from '@peertube/peertube-models'
|
||||
import { HttpMethodType, PeerTubeProblemDocumentData, ServerLogLevel, VideoCreate } from '@peertube/peertube-models'
|
||||
import { RegisterServerAuthExternalOptions } from '@server/types/index.js'
|
||||
import {
|
||||
MAbuseMessage,
|
||||
@ -109,6 +109,7 @@ declare module 'express' {
|
||||
|
||||
data?: PeerTubeProblemDocumentData
|
||||
|
||||
logLevel?: ServerLogLevel // Default debug
|
||||
tags?: string[]
|
||||
}) => void
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user