diff --git a/server/api/documents.js b/server/api/documents.js index 7048e1fe..ed676330 100644 --- a/server/api/documents.js +++ b/server/api/documents.js @@ -815,7 +815,12 @@ router.post("documents.unstar", auth(), async (ctx) => { router.post("documents.create", auth(), createDocumentFromContext); router.post("documents.import", auth(), async (ctx) => { + if (!ctx.is("multipart/form-data")) { + throw new InvalidRequestError("Request type must be multipart/form-data"); + } + const file: any = Object.values(ctx.request.files)[0]; + ctx.assertPresent(file, "file is required"); const user = ctx.state.user; authorize(user, "create", Document); diff --git a/server/api/documents.test.js b/server/api/documents.test.js index 4283e6b4..2c2ba9e7 100644 --- a/server/api/documents.test.js +++ b/server/api/documents.test.js @@ -1524,6 +1524,18 @@ describe("#documents.unstar", () => { }); }); +describe("#documents.import", () => { + it("should error if no file is passed", async () => { + const user = await buildUser(); + const res = await server.post("/api/documents.import", { + body: { + token: user.getJwtToken(), + }, + }); + expect(res.status).toEqual(400); + }); +}); + describe("#documents.create", () => { it("should create as a new document", async () => { const { user, collection } = await seed();