- checkErrors(req, res, () => {
- // Remove 'acct:' from the beginning of the string
- const nameWithHost = req.query.resource.substr(5)
- const [ name, ] = nameWithHost.split('@')
-
- db.Account.loadLocalByName(name)
- .then(account => {
- if (!account) {
- return res.status(404)
- .send({ error: 'Account not found' })
- .end()
- }
-
- res.locals.account = account
- return next()
- })
- .catch(err => {
- logger.error('Error in webfinger validator.', err)
- return res.sendStatus(500)
- })
- })
+ if (areValidationErrors(req, res)) return
+
+ // Remove 'acct:' from the beginning of the string
+ const nameWithHost = getHostWithPort(req.query.resource.substr(5))
+ const [ name ] = nameWithHost.split('@')
+
+ const actor = await ActorModel.loadLocalByName(name)
+ if (!actor) {
+ return res.status(404)
+ .send({ error: 'Actor not found' })
+ .end()
+ }
+
+ res.locals.actor = actor
+ return next()