]>
Commit | Line | Data |
---|---|---|
4e50b6a1 | 1 | import * as Bluebird from 'bluebird' |
a2431b7d | 2 | import { Response } from 'express' |
38fa2065 | 3 | import 'express-validator' |
d4f1e94c | 4 | import * as validator from 'validator' |
3fd3ab2d | 5 | import { AccountModel } from '../../models/account/account' |
38fa2065 C |
6 | import { isUserUsernameValid } from './users' |
7 | ||
350e31d6 | 8 | function isAccountNameValid (value: string) { |
38fa2065 C |
9 | return isUserUsernameValid(value) |
10 | } | |
11 | ||
a2431b7d | 12 | function isAccountIdExist (id: number | string, res: Response) { |
3fd3ab2d | 13 | let promise: Bluebird<AccountModel> |
4e50b6a1 C |
14 | |
15 | if (validator.isInt('' + id)) { | |
3fd3ab2d | 16 | promise = AccountModel.load(+id) |
38fa2065 | 17 | } else { // UUID |
3fd3ab2d | 18 | promise = AccountModel.loadByUUID('' + id) |
38fa2065 C |
19 | } |
20 | ||
a2431b7d | 21 | return isAccountExist(promise, res) |
4e50b6a1 C |
22 | } |
23 | ||
a2431b7d | 24 | function isLocalAccountNameExist (name: string, res: Response) { |
3fd3ab2d | 25 | const promise = AccountModel.loadLocalByName(name) |
4e50b6a1 | 26 | |
a2431b7d | 27 | return isAccountExist(promise, res) |
4e50b6a1 C |
28 | } |
29 | ||
3fd3ab2d | 30 | async function isAccountExist (p: Bluebird<AccountModel>, res: Response) { |
a2431b7d C |
31 | const account = await p |
32 | ||
33 | if (!account) { | |
34 | res.status(404) | |
35 | .send({ error: 'Account not found' }) | |
36 | .end() | |
37 | ||
38 | return false | |
39 | } | |
40 | ||
41 | res.locals.account = account | |
42 | ||
43 | return true | |
38fa2065 C |
44 | } |
45 | ||
46 | // --------------------------------------------------------------------------- | |
47 | ||
48 | export { | |
a2431b7d C |
49 | isAccountIdExist, |
50 | isLocalAccountNameExist, | |
350e31d6 | 51 | isAccountNameValid |
38fa2065 | 52 | } |