summaryrefslogtreecommitdiff
path: root/src/remote/resolve-user.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2019-04-13 01:43:22 +0900
committerGitHub <noreply@github.com>2019-04-13 01:43:22 +0900
commit987168b863c52d0548050ffbac569782bb9a8cef (patch)
treec9aa2243dcdcbd044688d201a51c601574bff259 /src/remote/resolve-user.ts
parentFix bug (diff)
downloadsharkey-987168b863c52d0548050ffbac569782bb9a8cef.tar.gz
sharkey-987168b863c52d0548050ffbac569782bb9a8cef.tar.bz2
sharkey-987168b863c52d0548050ffbac569782bb9a8cef.zip
strictNullChecks (#4666)
* wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip
Diffstat (limited to 'src/remote/resolve-user.ts')
-rw-r--r--src/remote/resolve-user.ts31
1 files changed, 25 insertions, 6 deletions
diff --git a/src/remote/resolve-user.ts b/src/remote/resolve-user.ts
index 6a8ce45c91..9b518f5e81 100644
--- a/src/remote/resolve-user.ts
+++ b/src/remote/resolve-user.ts
@@ -10,18 +10,31 @@ import { toPuny } from '../misc/convert-host';
const logger = remoteLogger.createSubLogger('resolve-user');
-export async function resolveUser(username: string, host: string, option?: any, resync = false): Promise<User> {
+export async function resolveUser(username: string, host: string | null, option?: any, resync = false): Promise<User> {
const usernameLower = username.toLowerCase();
- host = toPuny(host);
if (host == null) {
logger.info(`return local user: ${usernameLower}`);
- return await Users.findOne({ usernameLower, host: null });
+ return await Users.findOne({ usernameLower, host: null }).then(u => {
+ if (u == null) {
+ throw 'user not found';
+ } else {
+ return u;
+ }
+ });
}
+ host = toPuny(host);
+
if (config.host == host) {
logger.info(`return local user: ${usernameLower}`);
- return await Users.findOne({ usernameLower, host: null });
+ return await Users.findOne({ usernameLower, host: null }).then(u => {
+ if (u == null) {
+ throw 'user not found';
+ } else {
+ return u;
+ }
+ });
}
const user = await Users.findOne({ usernameLower, host }, option);
@@ -63,7 +76,13 @@ export async function resolveUser(username: string, host: string, option?: any,
await updatePerson(self.href);
logger.info(`return resynced remote user: ${acctLower}`);
- return await Users.findOne({ uri: self.href });
+ return await Users.findOne({ uri: self.href }).then(u => {
+ if (u == null) {
+ throw 'user not found';
+ } else {
+ return u;
+ }
+ });
}
logger.info(`return existing remote user: ${acctLower}`);
@@ -76,7 +95,7 @@ async function resolveSelf(acctLower: string) {
logger.error(`Failed to WebFinger for ${chalk.yellow(acctLower)}: ${ e.statusCode || e.message }`);
throw new Error(`Failed to WebFinger for ${acctLower}: ${ e.statusCode || e.message }`);
});
- const self = finger.links.find(link => link.rel && link.rel.toLowerCase() === 'self');
+ const self = finger.links.find(link => link.rel != null && link.rel.toLowerCase() === 'self');
if (!self) {
logger.error(`Failed to WebFinger for ${chalk.yellow(acctLower)}: self link not found`);
throw new Error('self link not found');