38 lines
830 B
TypeScript
38 lines
830 B
TypeScript
import { Elysia, t } from "elysia";
|
|
import { requireAuth } from "@backend/middlewares/auth";
|
|
import { songs, history, db } from "@core/drizzle";
|
|
import { eq } from "drizzle-orm";
|
|
|
|
export const deleteSongHandler = new Elysia({ prefix: "/song" }).use(requireAuth).delete(
|
|
"/:id",
|
|
async ({ params, user }) => {
|
|
const id = Number(params.id);
|
|
await db.update(songs).set({ deleted: true }).where(eq(songs.id, id));
|
|
await db.insert(history).values({
|
|
objectId: id,
|
|
changeType: "del-song",
|
|
changedBy: user!.unqId,
|
|
data: null
|
|
});
|
|
return {
|
|
message: `Successfully deleted song ${id}.`
|
|
};
|
|
},
|
|
{
|
|
response: {
|
|
200: t.Object({
|
|
message: t.String()
|
|
}),
|
|
401: t.Object({
|
|
message: t.String()
|
|
}),
|
|
500: t.Object({
|
|
message: t.String()
|
|
})
|
|
},
|
|
params: t.Object({
|
|
id: t.String()
|
|
})
|
|
}
|
|
);
|