mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-10-05 19:42:24 +02:00
Move middleware utils in middlewares
helpers modules should not import models
This commit is contained in:
parent
5e08989ede
commit
10363c74c1
68 changed files with 345 additions and 342 deletions
65
server/middlewares/validators/shared/accounts.ts
Normal file
65
server/middlewares/validators/shared/accounts.ts
Normal file
|
@ -0,0 +1,65 @@
|
|||
import { Response } from 'express'
|
||||
import { AccountModel } from '@server/models/account/account'
|
||||
import { UserModel } from '@server/models/user/user'
|
||||
import { MAccountDefault } from '@server/types/models'
|
||||
import { HttpStatusCode } from '@shared/core-utils'
|
||||
|
||||
function doesAccountIdExist (id: number | string, res: Response, sendNotFound = true) {
|
||||
const promise = AccountModel.load(parseInt(id + '', 10))
|
||||
|
||||
return doesAccountExist(promise, res, sendNotFound)
|
||||
}
|
||||
|
||||
function doesLocalAccountNameExist (name: string, res: Response, sendNotFound = true) {
|
||||
const promise = AccountModel.loadLocalByName(name)
|
||||
|
||||
return doesAccountExist(promise, res, sendNotFound)
|
||||
}
|
||||
|
||||
function doesAccountNameWithHostExist (nameWithDomain: string, res: Response, sendNotFound = true) {
|
||||
const promise = AccountModel.loadByNameWithHost(nameWithDomain)
|
||||
|
||||
return doesAccountExist(promise, res, sendNotFound)
|
||||
}
|
||||
|
||||
async function doesAccountExist (p: Promise<MAccountDefault>, res: Response, sendNotFound: boolean) {
|
||||
const account = await p
|
||||
|
||||
if (!account) {
|
||||
if (sendNotFound === true) {
|
||||
res.fail({
|
||||
status: HttpStatusCode.NOT_FOUND_404,
|
||||
message: 'Account not found'
|
||||
})
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
res.locals.account = account
|
||||
return true
|
||||
}
|
||||
|
||||
async function doesUserFeedTokenCorrespond (id: number, token: string, res: Response) {
|
||||
const user = await UserModel.loadByIdWithChannels(parseInt(id + '', 10))
|
||||
|
||||
if (token !== user.feedToken) {
|
||||
res.fail({
|
||||
status: HttpStatusCode.FORBIDDEN_403,
|
||||
message: 'User and token mismatch'
|
||||
})
|
||||
return false
|
||||
}
|
||||
|
||||
res.locals.user = user
|
||||
return true
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
export {
|
||||
doesAccountIdExist,
|
||||
doesLocalAccountNameExist,
|
||||
doesAccountNameWithHostExist,
|
||||
doesAccountExist,
|
||||
doesUserFeedTokenCorrespond
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue