feat: pipe external urls through iframely

This commit is contained in:
Apoorv Mishra
2023-07-23 08:16:38 +05:30
parent 15c8a4867f
commit 43a91626b2
9 changed files with 98 additions and 13 deletions

View File

@@ -10,6 +10,7 @@ import { authorize } from "@server/policies";
import { presentDocument, presentMention } from "@server/presenters/unfurls";
import { APIContext } from "@server/types";
import { RateLimiterStrategy } from "@server/utils/RateLimiter";
import { Iframely } from "@server/utils/unfurl";
import * as T from "./schema";
const router = new Router();
@@ -47,22 +48,21 @@ router.post(
}
const previewDocumentId = parseDocumentSlug(url);
if (!previewDocumentId) {
ctx.response.status = 204;
if (previewDocumentId) {
const document = previewDocumentId
? await Document.findByPk(previewDocumentId)
: undefined;
if (!document) {
throw NotFoundError("Document does not exist");
}
authorize(actor, "read", document);
ctx.body = presentDocument(document, actor);
return;
}
const document = previewDocumentId
? await Document.findByPk(previewDocumentId, {
userId: actor.id,
})
: undefined;
if (!document) {
throw NotFoundError("Document does not exist");
}
authorize(actor, "read", document);
ctx.body = presentDocument(document, actor);
const data = await Iframely.unfurl(url);
ctx.body = data;
}
);