fix(api): login-callback may have null user in rare cases

This commit is contained in:
41666 2020-12-17 15:01:40 -05:00
parent 823a99b4eb
commit b7921a830a

View file

@ -69,7 +69,6 @@ export const LoginCallback = resolveFailures(
const tokens = (await tokenFetch.json()) as AuthTokenResponse;
if (!tokens.access_token) {
console.info({ tokens });
return AuthErrorResponse('token response invalid');
}
@ -79,6 +78,10 @@ export const LoginCallback = resolveFailures(
getGuilds(tokens.access_token),
]);
if (!user) {
return AuthErrorResponse('failed to fetch user');
}
const sessionData: SessionData = {
tokens,
sessionID: sessionID.string,
@ -94,12 +97,14 @@ export const LoginCallback = resolveFailures(
}
);
const getUser = async (accessToken: string): Promise<DiscordUser> => {
const { id, username, discriminator, bot, avatar } = await discordFetch<DiscordUser>(
'/users/@me',
accessToken,
'Bearer'
);
const getUser = async (accessToken: string): Promise<DiscordUser | null> => {
const user = await discordFetch<DiscordUser>('/users/@me', accessToken, 'Bearer');
if (!user) {
return null;
}
const { id, username, discriminator, bot, avatar } = user;
return { id, username, discriminator, bot, avatar };
};