MCPcopy Index your code
hub / github.com/AnswerOverflow/AnswerOverflow / discordApiFetch

Function discordApiFetch

packages/core/src/auth.ts:562–592  ·  view source on GitHub ↗
(
		url: '/users/@me/guilds' | '/users/@me',
		callOpts: DiscordApiCallOpts,
	)

Source from the content-addressed store, hash-verified

560 accessToken: string;
561 };
562 export async function discordApiFetch(
563 url: '/users/@me/guilds' | '/users/@me',
564 callOpts: DiscordApiCallOpts,
565 ) {
566 const data = await fetch('https://discordapp.com/api' + url, {
567 headers: {
568 Authorization: `Bearer ${callOpts.accessToken}`,
569 },
570 // @ts-ignore
571 cache: 'force-cache',
572 // @ts-ignore
573 revalidate: 600,
574 });
575 if (data.status === 401) {
576 const account = await db.query.dbAccounts.findFirst({
577 where: and(
578 eq(dbAccounts.provider, 'discord'),
579 eq(dbAccounts.access_token, callOpts.accessToken),
580 ),
581 });
582 if (!account) {
583 throw new Error('Invalid access token');
584 }
585 await refreshAccessToken(account);
586 } else if (data.status !== 200) {
587 throw new Error(
588 `Invalid response from Discord ${data.status} ${data.statusText}`,
589 );
590 }
591 return data;
592 }
593 const hoursToSeconds = (hours: number) => hours * 60 * 60;
594
595 /*

Callers 2

getUserServersFunction · 0.85
getDiscordUserFunction · 0.85

Calls 2

fetchFunction · 0.85
refreshAccessTokenFunction · 0.85

Tested by

no test coverage detected