diff options
Diffstat (limited to 'src/api/routes/oauth2/callback.ts')
-rw-r--r-- | src/api/routes/oauth2/callback.ts | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/src/api/routes/oauth2/callback.ts b/src/api/routes/oauth2/callback.ts deleted file mode 100644 index ddfcdac2..00000000 --- a/src/api/routes/oauth2/callback.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Router, Request, Response } from "express"; -import { route, OauthCallbackHandlers } from "@fosscord/api"; -import { FieldErrors, generateToken, User } from "@fosscord/util"; -const router = Router(); - -router.get("/:type", route({}), async (req: Request, res: Response) => { - const { type } = req.params; - const handler = OauthCallbackHandlers[type]; - if (!handler) throw FieldErrors({ - type: { - code: "BASE_TYPE_CHOICES", - message: `Value must be one of (${Object.keys(OauthCallbackHandlers).join(", ")}).`, - } - }); - - const { code } = req.query; - if (!code || typeof code !== "string") throw FieldErrors({ code: { code: "BASE_TYPE_REQUIRED", message: req.t("common:field.BASE_TYPE_REQUIRED"), } }); - const access = await handler.getAccessToken(code); - - const oauthUser = await handler.getUserDetals(access.access_token); - - let user = await User.findOne({ where: { email: oauthUser.email } }); - if (!user) { - user = await User.register({ - email: oauthUser.email, - username: oauthUser.username, - req - }); - - // TODO: upload pfp, banner? - } - - const token = await generateToken(user.id); - - return res.json({ token }) -}); - -export default router; \ No newline at end of file |