]>
Commit | Line | Data |
---|---|---|
38fa2065 C |
1 | import * as Promise from 'bluebird' |
2 | import * as validator from 'validator' | |
3 | import * as express from 'express' | |
4 | import 'express-validator' | |
5 | ||
6 | import { database as db } from '../../initializers' | |
7 | import { AccountInstance } from '../../models' | |
8 | import { logger } from '../logger' | |
9 | ||
10 | import { isUserUsernameValid } from './users' | |
60862425 | 11 | import { isHostValid } from './servers' |
38fa2065 | 12 | |
350e31d6 | 13 | function isAccountNameValid (value: string) { |
38fa2065 C |
14 | return isUserUsernameValid(value) |
15 | } | |
16 | ||
7a7724e6 C |
17 | function isAccountNameWithHostValid (value: string) { |
18 | const [ name, host ] = value.split('@') | |
19 | ||
350e31d6 | 20 | return isAccountNameValid(name) && isHostValid(host) |
7a7724e6 C |
21 | } |
22 | ||
38fa2065 C |
23 | function checkVideoAccountExists (id: string, res: express.Response, callback: () => void) { |
24 | let promise: Promise<AccountInstance> | |
25 | if (validator.isInt(id)) { | |
26 | promise = db.Account.load(+id) | |
27 | } else { // UUID | |
28 | promise = db.Account.loadByUUID(id) | |
29 | } | |
30 | ||
31 | promise.then(account => { | |
32 | if (!account) { | |
33 | return res.status(404) | |
34 | .json({ error: 'Video account not found' }) | |
35 | .end() | |
36 | } | |
37 | ||
38 | res.locals.account = account | |
39 | callback() | |
40 | }) | |
350e31d6 C |
41 | .catch(err => { |
42 | logger.error('Error in video account request validator.', err) | |
43 | return res.sendStatus(500) | |
44 | }) | |
38fa2065 C |
45 | } |
46 | ||
47 | // --------------------------------------------------------------------------- | |
48 | ||
49 | export { | |
50 | checkVideoAccountExists, | |
7a7724e6 | 51 | isAccountNameWithHostValid, |
350e31d6 | 52 | isAccountNameValid |
38fa2065 | 53 | } |