mirror of
https://github.com/roleypoly/roleypoly.git
synced 2025-04-25 03:49:11 +00:00
* feat: add discord interactions worker * feat(interactions): update CI/CD and terraform to add interactions * chore: fix lint issues * chore: fix build & emulation * fix(interactions): deployment + handler * chore: remove worker-dist via gitignore * feat: add /pickable-roles and /pick-role basis * feat: add pick, remove, and update the general /roleypoly command * fix: lint missing Member import
28 lines
870 B
TypeScript
28 lines
870 B
TypeScript
import { SessionData } from '@roleypoly/types';
|
|
import { discordAPIBase, respond, userAgent } from '@roleypoly/worker-utils';
|
|
import { formData, withSession } from '../utils/api-tools';
|
|
import { botClientID, botClientSecret } from '../utils/config';
|
|
import { Sessions } from '../utils/kv';
|
|
|
|
export const RevokeSession = withSession(
|
|
(session: SessionData) => async (request: Request) => {
|
|
const tokenRequest = {
|
|
token: session.tokens.access_token,
|
|
client_id: botClientID,
|
|
client_secret: botClientSecret,
|
|
};
|
|
|
|
await fetch(discordAPIBase + '/oauth2/token/revoke', {
|
|
method: 'POST',
|
|
headers: {
|
|
'content-type': 'application/x-www-form-urlencoded',
|
|
'user-agent': userAgent,
|
|
},
|
|
body: formData(tokenRequest),
|
|
});
|
|
|
|
await Sessions.delete(session.sessionID);
|
|
|
|
return respond({ ok: true });
|
|
}
|
|
);
|