mirror of
https://github.com/spacebarchat/server.git
synced 2026-10-22 17:32:30 +00:00
Move src-slowcord to own repo https://github.com/MaddyUnderStars/slowcord-services
This commit is contained in:
1 parent
c00c70985c
commit
e991e00f32
35 files changed
+185
-1519
No files matched your search
@@ -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;
|
||||
@@ -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;
|
||||
Reference in new issue
Block a user