From c9723e644fbf6be141b7177261c3fd071e977d08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=98=99=E2=97=A6=20The=20Tablet=20=E2=9D=80=20GamerGirla?= =?UTF-8?q?ndCo=20=E2=97=A6=E2=9D=A7?= Date: Tue, 3 Oct 2023 00:58:52 -0400 Subject: [PATCH] feat(api): add avatar upload route --- server/api/upload/avatar.post.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 server/api/upload/avatar.post.ts diff --git a/server/api/upload/avatar.post.ts b/server/api/upload/avatar.post.ts new file mode 100644 index 0000000..b4df78c --- /dev/null +++ b/server/api/upload/avatar.post.ts @@ -0,0 +1,29 @@ +import { v4 } from "uuid"; +import { resolve } from "path"; +import isLoggedIn from "~/lib/server/middlewareButNotReally/isLoggedIn"; +import * as sharp from "sharp"; + +export default eventHandler(async (ev) => { + isLoggedIn(ev); + let mpd = await readMultipartFormData(ev); + if (!mpd) { + throw createError({ + statusCode: 400, + }); + } + let si = sharp(mpd[0].data!); + let nn = v4(); + await si + .resize({ + height: 500, + width: 500, + fit: "outside", + background: { r: 0, g: 0, b: 0, alpha: 0 }, + }) + .toFormat("png") + .toFile(resolve(`public/${nn}.png`)); + return { + success: true, + file: `${nn}.png`, + }; +});