This commit is contained in:
Madeline committed 2022-10-28 15:25:58 +11:00
1 parent c00c70985c
commit e991e00f32
35 files changed
+185 -1519

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
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 { token };
});
export default router;
+21
View File
@@ -0,0 +1,21 @@
import { Router, Request, Response } from "express";
import { route } from "@fosscord/api";
import { Attachment, Config, Guild, Message, RateLimit, Session, User } from "@fosscord/util";
const router = Router();
router.get("/", route({}), async (req: Request, res: Response) => {
res.json({
all_time: {
users: await User.count(),
guilds: await Guild.count(),
messages: await Message.count(),
attachments: await Attachment.count(),
},
now: {
sessions: await Session.count(),
rate_limits: await RateLimit.count(),
}
});
});
export default router;