42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
|
import { db } from "$lib/server/db";
|
||
|
import * as table from "$lib/server/db/schema";
|
||
|
import { fail } from "@sveltejs/kit";
|
||
|
import { eq } from "drizzle-orm";
|
||
|
|
||
|
export const load = async (event) => {
|
||
|
const floors = await db.select().from(table.floors).orderBy(table.floors.floor);
|
||
|
|
||
|
return { floors: floors };
|
||
|
};
|
||
|
|
||
|
export const actions = {
|
||
|
newfloor: async (event) => {
|
||
|
const formData = await event.request.formData();
|
||
|
const newFloorNumber = await formData.get("number");
|
||
|
const n = Number(newFloorNumber);
|
||
|
if (isNaN(n)) return fail(400, { message: "Invalid number!" });
|
||
|
|
||
|
const exists = await db
|
||
|
.select({ floor: table.floors.floor })
|
||
|
.from(table.floors)
|
||
|
.where(eq(table.floors.floor, n))
|
||
|
.execute();
|
||
|
console.log(n);
|
||
|
console.log(exists);
|
||
|
if (exists.length == 1) return fail(400, { message: "Floor " + n + " already exists!" });
|
||
|
|
||
|
await db.insert(table.floors).values({ floor: n, url: "/" });
|
||
|
},
|
||
|
rmfloor: async (event) => {
|
||
|
const formData = await event.request.formData();
|
||
|
const rmFloorNumber = await formData.get("number");
|
||
|
const n = Number(rmFloorNumber);
|
||
|
if (isNaN(n)) return fail(400, { message: "Invalid number!" });
|
||
|
|
||
|
const floors = await db.select().from(table.floors);
|
||
|
if (floors.length == 1) return fail(400, { message: "Cannot delete last floor!" });
|
||
|
|
||
|
await db.delete(table.floors).where(eq(table.floors.floor, n));
|
||
|
},
|
||
|
};
|