+ return isAccountExist(promise, res, sendNotFound)
+}
+
+function isLocalAccountNameExist (name: string, res: Response, sendNotFound = true) {
+ const promise = AccountModel.loadLocalByName(name)
+
+ return isAccountExist(promise, res, sendNotFound)
+}
+
+function isAccountNameWithHostExist (nameWithDomain: string, res: Response, sendNotFound = true) {
+ const [ accountName, host ] = nameWithDomain.split('@')
+
+ let promise: Bluebird<AccountModel>
+ if (!host || host === CONFIG.WEBSERVER.HOST) promise = AccountModel.loadLocalByName(accountName)
+ else promise = AccountModel.loadLocalByNameAndHost(accountName, host)
+
+ return isAccountExist(promise, res, sendNotFound)
+}
+
+async function isAccountExist (p: Bluebird<AccountModel>, res: Response, sendNotFound: boolean) {
+ const account = await p
+
+ if (!account) {
+ if (sendNotFound === true) {
+ res.status(404)
+ .send({ error: 'Account not found' })
+ .end()