mirror of
https://github.com/spacebarchat/server.git
synced 2026-06-04 08:41:36 +00:00
oapi: finish users
This commit is contained in:
@@ -35,8 +35,8 @@ router.post(
|
||||
"/",
|
||||
route({
|
||||
responses: {
|
||||
200: {
|
||||
body: "TokenResponse",
|
||||
204: {
|
||||
body: "TokenOnlyResponse",
|
||||
},
|
||||
400: {
|
||||
body: "APIErrorResponse",
|
||||
|
||||
@@ -45,7 +45,7 @@ router.post(
|
||||
route({
|
||||
requestBody: "RegisterSchema",
|
||||
responses: {
|
||||
200: { body: "TokenResponse" },
|
||||
200: { body: "TokenOnlyResponse" },
|
||||
400: { body: "APIErrorOrCaptchaResponse" },
|
||||
},
|
||||
}),
|
||||
|
||||
@@ -38,7 +38,7 @@ router.post(
|
||||
requestBody: "PasswordResetSchema",
|
||||
responses: {
|
||||
200: {
|
||||
body: "TokenResponse",
|
||||
body: "TokenOnlyResponse",
|
||||
},
|
||||
400: {
|
||||
body: "APIErrorOrCaptchaResponse",
|
||||
|
||||
@@ -28,17 +28,37 @@ import { Request, Response, Router } from "express";
|
||||
const router = Router();
|
||||
|
||||
// GET doesn't exist on discord.com
|
||||
router.get("/", route({}), async (req: Request, res: Response) => {
|
||||
const user = await Member.findOneOrFail({
|
||||
where: { id: req.user_id, guild_id: req.params.guild_id },
|
||||
select: ["settings"],
|
||||
});
|
||||
return res.json(user.settings);
|
||||
});
|
||||
router.get(
|
||||
"/",
|
||||
route({
|
||||
responses: {
|
||||
200: {},
|
||||
404: {},
|
||||
},
|
||||
}),
|
||||
async (req: Request, res: Response) => {
|
||||
const user = await Member.findOneOrFail({
|
||||
where: { id: req.user_id, guild_id: req.params.guild_id },
|
||||
select: ["settings"],
|
||||
});
|
||||
return res.json(user.settings);
|
||||
},
|
||||
);
|
||||
|
||||
router.patch(
|
||||
"/",
|
||||
route({ requestBody: "UserGuildSettingsSchema" }),
|
||||
route({
|
||||
requestBody: "UserGuildSettingsSchema",
|
||||
responses: {
|
||||
200: {},
|
||||
400: {
|
||||
body: "APIErrorResponse",
|
||||
},
|
||||
404: {
|
||||
body: "APIErrorResponse",
|
||||
},
|
||||
},
|
||||
}),
|
||||
async (req: Request, res: Response) => {
|
||||
const body = req.body as UserGuildSettingsSchema;
|
||||
|
||||
|
||||
@@ -31,7 +31,17 @@ const router = Router();
|
||||
|
||||
router.post(
|
||||
"/",
|
||||
route({ requestBody: "TotpDisableSchema" }),
|
||||
route({
|
||||
requestBody: "TotpDisableSchema",
|
||||
responses: {
|
||||
200: {
|
||||
body: "TokenOnlyResponse",
|
||||
},
|
||||
400: {
|
||||
body: "APIErrorResponse",
|
||||
},
|
||||
},
|
||||
}),
|
||||
async (req: Request, res: Response) => {
|
||||
const body = req.body as TotpDisableSchema;
|
||||
|
||||
|
||||
@@ -32,7 +32,20 @@ const router = Router();
|
||||
|
||||
router.post(
|
||||
"/",
|
||||
route({ requestBody: "TotpEnableSchema" }),
|
||||
route({
|
||||
requestBody: "TotpEnableSchema",
|
||||
responses: {
|
||||
200: {
|
||||
body: "TokenWithBackupCodesResponse",
|
||||
},
|
||||
400: {
|
||||
body: "APIErrorResponse",
|
||||
},
|
||||
404: {
|
||||
body: "APIErrorResponse",
|
||||
},
|
||||
},
|
||||
}),
|
||||
async (req: Request, res: Response) => {
|
||||
const body = req.body as TotpEnableSchema;
|
||||
|
||||
|
||||
@@ -21,21 +21,31 @@ import { SecurityKey, User } from "@spacebar/util";
|
||||
import { Request, Response, Router } from "express";
|
||||
const router = Router();
|
||||
|
||||
router.delete("/", route({}), async (req: Request, res: Response) => {
|
||||
const { key_id } = req.params;
|
||||
router.delete(
|
||||
"/",
|
||||
route({
|
||||
responses: {
|
||||
204: {},
|
||||
},
|
||||
}),
|
||||
async (req: Request, res: Response) => {
|
||||
const { key_id } = req.params;
|
||||
|
||||
await SecurityKey.delete({
|
||||
id: key_id,
|
||||
user_id: req.user_id,
|
||||
});
|
||||
await SecurityKey.delete({
|
||||
id: key_id,
|
||||
user_id: req.user_id,
|
||||
});
|
||||
|
||||
const keys = await SecurityKey.count({ where: { user_id: req.user_id } });
|
||||
const keys = await SecurityKey.count({
|
||||
where: { user_id: req.user_id },
|
||||
});
|
||||
|
||||
// disable webauthn if there are no keys left
|
||||
if (keys === 0)
|
||||
await User.update({ id: req.user_id }, { webauthn_enabled: false });
|
||||
// disable webauthn if there are no keys left
|
||||
if (keys === 0)
|
||||
await User.update({ id: req.user_id }, { webauthn_enabled: false });
|
||||
|
||||
res.sendStatus(204);
|
||||
});
|
||||
res.sendStatus(204);
|
||||
},
|
||||
);
|
||||
|
||||
export default router;
|
||||
|
||||
@@ -73,7 +73,17 @@ router.get("/", route({}), async (req: Request, res: Response) => {
|
||||
|
||||
router.post(
|
||||
"/",
|
||||
route({ requestBody: "WebAuthnPostSchema" }),
|
||||
route({
|
||||
requestBody: "WebAuthnPostSchema",
|
||||
responses: {
|
||||
200: {
|
||||
body: "WebAuthnCreateResponse",
|
||||
},
|
||||
400: {
|
||||
body: "APIErrorResponse",
|
||||
},
|
||||
},
|
||||
}),
|
||||
async (req: Request, res: Response) => {
|
||||
if (!WebAuthn.fido2) {
|
||||
// TODO: I did this for typescript and I can't use !
|
||||
|
||||
Reference in New Issue
Block a user