-import * as express from 'express'
+import { forceNumber } from '@shared/core-utils'
+import express from 'express'
import { HttpStatusCode } from '../../../../shared/models/http/http-error-codes'
import { getFormattedObjects } from '../../../helpers/utils'
import { sequelizeTypescript } from '../../../initializers/database'
paginationValidator,
setDefaultPagination,
userHistoryListValidator,
- userHistoryRemoveValidator
+ userHistoryRemoveAllValidator,
+ userHistoryRemoveElementValidator
} from '../../../middlewares'
import { UserVideoHistoryModel } from '../../../models/user/user-video-history'
asyncMiddleware(listMyVideosHistory)
)
+myVideosHistoryRouter.delete('/me/history/videos/:videoId',
+ authenticate,
+ userHistoryRemoveElementValidator,
+ asyncMiddleware(removeUserHistoryElement)
+)
+
myVideosHistoryRouter.post('/me/history/videos/remove',
authenticate,
- userHistoryRemoveValidator,
- asyncRetryTransactionMiddleware(removeUserHistory)
+ userHistoryRemoveAllValidator,
+ asyncRetryTransactionMiddleware(removeAllUserHistory)
)
// ---------------------------------------------------------------------------
return res.json(getFormattedObjects(resultList.data, resultList.total))
}
-async function removeUserHistory (req: express.Request, res: express.Response) {
+async function removeUserHistoryElement (req: express.Request, res: express.Response) {
+ const user = res.locals.oauth.token.User
+
+ await UserVideoHistoryModel.removeUserHistoryElement(user, forceNumber(req.params.videoId))
+
+ return res.sendStatus(HttpStatusCode.NO_CONTENT_204)
+}
+
+async function removeAllUserHistory (req: express.Request, res: express.Response) {
const user = res.locals.oauth.token.User
const beforeDate = req.body.beforeDate || null