]>
Commit | Line | Data |
---|---|---|
1 | import * as Bluebird from 'bluebird' | |
2 | import { Response } from 'express' | |
3 | import 'express-validator' | |
4 | import * as validator from 'validator' | |
5 | import { AccountModel } from '../../models/account/account' | |
6 | import { isUserUsernameValid } from './users' | |
7 | ||
8 | function isAccountNameValid (value: string) { | |
9 | return isUserUsernameValid(value) | |
10 | } | |
11 | ||
12 | function isAccountIdExist (id: number | string, res: Response) { | |
13 | let promise: Bluebird<AccountModel> | |
14 | ||
15 | if (validator.isInt('' + id)) { | |
16 | promise = AccountModel.load(+id) | |
17 | } else { // UUID | |
18 | promise = AccountModel.loadByUUID('' + id) | |
19 | } | |
20 | ||
21 | return isAccountExist(promise, res) | |
22 | } | |
23 | ||
24 | function isLocalAccountNameExist (name: string, res: Response) { | |
25 | const promise = AccountModel.loadLocalByName(name) | |
26 | ||
27 | return isAccountExist(promise, res) | |
28 | } | |
29 | ||
30 | async function isAccountExist (p: Bluebird<AccountModel>, res: Response) { | |
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 | |
44 | } | |
45 | ||
46 | // --------------------------------------------------------------------------- | |
47 | ||
48 | export { | |
49 | isAccountIdExist, | |
50 | isLocalAccountNameExist, | |
51 | isAccountNameValid | |
52 | } |