mirror of
https://github.com/Drop-OSS/drop.git
synced 2025-11-13 00:02:37 +10:00
version importing
This commit is contained in:
37
server/api/v1/admin/import/version/index.post.ts
Normal file
37
server/api/v1/admin/import/version/index.post.ts
Normal file
@ -0,0 +1,37 @@
|
||||
import libraryManager from "~/server/internal/library";
|
||||
|
||||
export default defineEventHandler(async (h3) => {
|
||||
const user = await h3.context.session.getAdminUser(h3);
|
||||
if (!user) throw createError({ statusCode: 403 });
|
||||
|
||||
const body = await readBody(h3);
|
||||
const gameId = body.id;
|
||||
const versionName = body.version;
|
||||
const platform = body.platform;
|
||||
const startup = body.startup;
|
||||
const setup = body.setup ?? "";
|
||||
if (
|
||||
!gameId ||
|
||||
!versionName ||
|
||||
!platform ||
|
||||
!startup
|
||||
)
|
||||
throw createError({
|
||||
statusCode: 400,
|
||||
statusMessage:
|
||||
"Missing id, version, platform, setup or startup from body",
|
||||
});
|
||||
|
||||
const taskId = await libraryManager.importVersion(gameId, versionName, {
|
||||
platform,
|
||||
startup,
|
||||
setup,
|
||||
});
|
||||
if (!taskId)
|
||||
throw createError({
|
||||
statusCode: 400,
|
||||
statusMessage: "Invalid options for import",
|
||||
});
|
||||
|
||||
return { taskId: taskId };
|
||||
});
|
||||
@ -17,8 +17,10 @@ export default defineWebSocketHandler({
|
||||
peer.send("unauthenticated");
|
||||
return;
|
||||
}
|
||||
const admin = session.getAdminUser(dummyEvent);
|
||||
const peerId = uuidv4();
|
||||
peer.ctx.id = peerId;
|
||||
peer.ctx.admin = admin !== undefined;
|
||||
|
||||
const rtMsg: TaskMessage = {
|
||||
id: "connect",
|
||||
@ -34,7 +36,7 @@ export default defineWebSocketHandler({
|
||||
const text = message.text();
|
||||
if (text.startsWith("connect/")) {
|
||||
const id = text.substring("connect/".length);
|
||||
taskHandler.connect(peer.ctx.id, id, peer);
|
||||
taskHandler.connect(peer.ctx.id, id, peer, peer.ctx.admin);
|
||||
return;
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user