finished object endpoints

Added writing (tested) and deleting (untested) endpoints
This commit is contained in:
DecDuck
2024-10-09 15:08:55 +11:00
parent 435551c207
commit 486bce8bc7
7 changed files with 59 additions and 25 deletions
+1 -1
View File
@@ -41,7 +41,7 @@ export default defineEventHandler(async (h3) => {
const user = await prisma.user.create({
data: {
username,
displayName: "",
displayName: "DecDuck",
email: "",
profilePicture: profilePictureObject,
},
@@ -0,0 +1,9 @@
export default defineEventHandler(async (h3) => {
const id = getRouterParam(h3, "id");
if (!id) throw createError({ statusCode: 400, statusMessage: "Invalid ID" });
const userId = await h3.context.session.getUserId(h3);
const result = await h3.context.objects.deleteWithPermission(id, userId);
return { success: result };
});
+21
View File
@@ -0,0 +1,21 @@
export default defineEventHandler(async (h3) => {
const id = getRouterParam(h3, "id");
if (!id) throw createError({ statusCode: 400, statusMessage: "Invalid ID" });
const body = await readRawBody(h3, "binary");
if (!body)
throw createError({
statusCode: 400,
statusMessage: "Invalid upload",
});
const userId = await h3.context.session.getUserId(h3);
const buffer = Buffer.from(body);
const result = await h3.context.objects.writeWithPermissions(
id,
async () => buffer,
userId
);
return { success: result };
});
+2 -1
View File
@@ -131,11 +131,12 @@ export abstract class ObjectBackend {
userId?: string
) {
const metadata = await this.fetchMetadata(id);
if (!metadata) return;
if (!metadata) return false;
const myPermissions = metadata.permissions
.filter((e) => {
if (userId !== undefined && e.startsWith(userId)) return true;
if (userId !== undefined && e.startsWith("internal")) return true;
if (e.startsWith("anonymous")) return true;
return false;
})