Update read state on message create
This commit is contained in:
parent
891e548396
commit
357ec51f1c
@ -14,6 +14,7 @@ import {
|
||||
Member,
|
||||
Role,
|
||||
MessageCreateSchema,
|
||||
ReadState,
|
||||
} from "@fosscord/util";
|
||||
import { HTTPError } from "lambert-server";
|
||||
import { handleMessage, postHandleMessage, route } from "@fosscord/api";
|
||||
@ -74,7 +75,7 @@ router.get("/", async (req: Request, res: Response) => {
|
||||
permissions.hasThrow("VIEW_CHANNEL");
|
||||
if (!permissions.has("READ_MESSAGE_HISTORY")) return res.json([]);
|
||||
|
||||
var query: FindManyOptions<Message> & { where: { id?: any } } = {
|
||||
var query: FindManyOptions<Message> & { where: { id?: any; }; } = {
|
||||
order: { timestamp: "DESC" },
|
||||
take: limit,
|
||||
where: { channel_id },
|
||||
@ -132,9 +133,8 @@ router.get("/", async (req: Request, res: Response) => {
|
||||
const uri = y.proxy_url.startsWith("http")
|
||||
? y.proxy_url
|
||||
: `https://example.org${y.proxy_url}`;
|
||||
y.proxy_url = `${endpoint == null ? "" : endpoint}${
|
||||
new URL(uri).pathname
|
||||
}`;
|
||||
y.proxy_url = `${endpoint == null ? "" : endpoint}${new URL(uri).pathname
|
||||
}`;
|
||||
});
|
||||
|
||||
/**
|
||||
@ -267,7 +267,15 @@ router.post(
|
||||
return role.id;
|
||||
}) as any;
|
||||
|
||||
let read_state = await ReadState.findOne({
|
||||
where: { user_id: req.user_id, channel_id }
|
||||
});
|
||||
if (!read_state)
|
||||
read_state = ReadState.create({ user_id: req.user_id, channel_id });
|
||||
read_state.last_message_id = message.id;
|
||||
|
||||
await Promise.all([
|
||||
read_state.save(),
|
||||
message.save(),
|
||||
emitEvent({
|
||||
event: "MESSAGE_CREATE",
|
||||
@ -276,14 +284,14 @@ router.post(
|
||||
} as MessageCreateEvent),
|
||||
message.guild_id
|
||||
? Member.update(
|
||||
{ id: req.user_id, guild_id: message.guild_id },
|
||||
{ last_message_id: message.id },
|
||||
)
|
||||
{ id: req.user_id, guild_id: message.guild_id },
|
||||
{ last_message_id: message.id },
|
||||
)
|
||||
: null,
|
||||
channel.save(),
|
||||
]);
|
||||
|
||||
postHandleMessage(message).catch((e) => {}); // no await as it shouldnt block the message send function and silently catch error
|
||||
postHandleMessage(message).catch((e) => { }); // no await as it shouldnt block the message send function and silently catch error
|
||||
|
||||
return res.json(message);
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user