read-states/ack-bulk (#969)
This commit is contained in:
parent
709dc7280e
commit
71258f6487
Binary file not shown.
Binary file not shown.
41
src/api/routes/read-states/ack-bulk.ts
Normal file
41
src/api/routes/read-states/ack-bulk.ts
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
import { Router, Request, Response } from "express";
|
||||||
|
import { route } from "@fosscord/api";
|
||||||
|
import { AckBulkSchema, ReadState } from "@fosscord/util";
|
||||||
|
const router = Router();
|
||||||
|
|
||||||
|
router.post(
|
||||||
|
"/",
|
||||||
|
route({ body: "AckBulkSchema" }),
|
||||||
|
async (req: Request, res: Response) => {
|
||||||
|
const body = req.body as AckBulkSchema;
|
||||||
|
|
||||||
|
// TODO: what is read_state_type ?
|
||||||
|
|
||||||
|
await Promise.all([
|
||||||
|
// for every new state
|
||||||
|
...body.read_states.map(async (x) => {
|
||||||
|
// find an existing one
|
||||||
|
const ret =
|
||||||
|
(await ReadState.findOne({
|
||||||
|
where: {
|
||||||
|
user_id: req.user_id,
|
||||||
|
channel_id: x.channel_id,
|
||||||
|
},
|
||||||
|
})) ??
|
||||||
|
// if it doesn't exist, create it (not a promise)
|
||||||
|
ReadState.create({
|
||||||
|
user_id: req.user_id,
|
||||||
|
channel_id: x.channel_id,
|
||||||
|
});
|
||||||
|
|
||||||
|
ret.last_message_id = x.message_id;
|
||||||
|
|
||||||
|
return ret.save();
|
||||||
|
}),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return res.status(204);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
export default router;
|
||||||
9
src/util/schemas/AckBulkSchema.ts
Normal file
9
src/util/schemas/AckBulkSchema.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
export interface AckBulkSchema {
|
||||||
|
read_states: [
|
||||||
|
{
|
||||||
|
channel_id: string;
|
||||||
|
message_id: string;
|
||||||
|
read_state_type: number; // WHat is this?
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
@ -69,6 +69,21 @@ export * from "./VanityUrlSchema";
|
|||||||
export * from "./VoiceIdentifySchema";
|
export * from "./VoiceIdentifySchema";
|
||||||
export * from "./VoiceStateUpdateSchema";
|
export * from "./VoiceStateUpdateSchema";
|
||||||
export * from "./VoiceVideoSchema";
|
export * from "./VoiceVideoSchema";
|
||||||
|
export * from "./IdentifySchema";
|
||||||
|
export * from "./ActivitySchema";
|
||||||
|
export * from "./LazyRequestSchema";
|
||||||
|
export * from "./GuildUpdateSchema";
|
||||||
|
export * from "./ChannelPermissionOverwriteSchema";
|
||||||
|
export * from "./UserGuildSettingsSchema";
|
||||||
|
export * from "./GatewayPayloadSchema";
|
||||||
|
export * from "./RolePositionUpdateSchema";
|
||||||
|
export * from "./ChannelReorderSchema";
|
||||||
|
export * from "./UserSettingsSchema";
|
||||||
|
export * from "./BotModifySchema";
|
||||||
|
export * from "./ApplicationModifySchema";
|
||||||
|
export * from "./ApplicationCreateSchema";
|
||||||
|
export * from "./ApplicationAuthorizeSchema";
|
||||||
|
export * from "./AckBulkSchema";
|
||||||
export * from "./WebAuthnSchema";
|
export * from "./WebAuthnSchema";
|
||||||
export * from "./WebhookCreateSchema";
|
export * from "./WebhookCreateSchema";
|
||||||
export * from "./WidgetModifySchema";
|
export * from "./WidgetModifySchema";
|
||||||
|
|||||||
Reference in New Issue
Block a user