Merge branch 'fosscord:master' into milestoneV1/routes/implement/emojis

This commit is contained in:
Lobo Metalúrgico
2021-10-09 23:44:59 -03:00
committed by GitHub
9 changed files with 94 additions and 21 deletions
@@ -1,4 +1,4 @@
import { emitEvent, getPermission, MessageAckEvent, ReadState } from "@fosscord/util";
import { emitEvent, getPermission, MessageAckEvent, ReadState, Snowflake } from "@fosscord/util";
import { Request, Response, Router } from "express";
import { route } from "@fosscord/api";
@@ -18,7 +18,11 @@ router.post("/", route({ body: "MessageAcknowledgeSchema" }), async (req: Reques
const permission = await getPermission(req.user_id, undefined, channel_id);
permission.hasThrow("VIEW_CHANNEL");
await ReadState.update({ user_id: req.user_id, channel_id }, { user_id: req.user_id, channel_id, last_message_id: message_id });
let read_state = await ReadState.findOne({ user_id: req.user_id, channel_id });
if (!read_state) read_state = new ReadState({ user_id: req.user_id, channel_id });
read_state.last_message_id = message_id;
await read_state.save();
await emitEvent({
event: "MESSAGE_ACK",
@@ -103,6 +103,7 @@ router.get("/", async (req: Request, res: Response) => {
}
const messages = await Message.find(query);
const endpoint = Config.get().cdn.endpointPublic;
return res.json(
messages.map((x) => {
@@ -115,7 +116,9 @@ router.get("/", async (req: Request, res: Response) => {
// @ts-ignore
if (!x.author) x.author = { discriminator: "0000", username: "Deleted User", public_flags: "0", avatar: null };
x.attachments?.forEach((x) => {
x.proxy_url = `${Config.get().cdn.endpointPublic || "http://localhost:3003"}${new URL(x.proxy_url).pathname}`;
// dynamically set attachment proxy_url in case the endpoint changed
const uri = x.proxy_url.startsWith("http") ? x.proxy_url : `https://example.org${x.proxy_url}`;
x.proxy_url = `${endpoint == null ? "http://localhost:3003" : endpoint}${new URL(uri).pathname}`;
});
return x;