diff --git a/package-lock.json b/package-lock.json index df4b145..bd161d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "auth-header": "^1.0.0", "commander": "^10.0.0", "cors": "^2.8.5", - "dblang": "https://jusax.de/git/attachments/1317588b-b3f3-4b95-bdcc-34292a023298", + "dblang": "https://jusax.de/git/attachments/377d0a32-3eca-4a8f-9c3a-f8a045a9c5b1", "express": "^4.18.2", "juml": "https://jusax.de/git/attachments/208913c5-2851-4b86-a53d-ca99fed168cc", "nman": "https://jusax.de/git/attachments/5333948b-fe6b-45d2-9230-ca388f6a89bc", @@ -1108,8 +1108,8 @@ }, "node_modules/dblang": { "version": "0.9.3", - "resolved": "https://jusax.de/git/attachments/1317588b-b3f3-4b95-bdcc-34292a023298", - "integrity": "sha512-l2LKpxM79S2UjVWS1W9flLt6uZcVsG2qrc6JwqoFv0rgxMOBzoJnnWaHSD5UJKydgXjMycZIvXpGzkuX6vNfwA==", + "resolved": "https://jusax.de/git/attachments/377d0a32-3eca-4a8f-9c3a-f8a045a9c5b1", + "integrity": "sha512-Co3RZ2Dfk2Atm2Oyr7rtHJDeiMZ8NwfrvTBwfhP9wVkXQuN1WrMMQ5W+/Ho2g6c6BWbUnsqADKTaCcJZrYBbjQ==", "license": "UNLICENSED", "dependencies": { "gitea-release": "git+https://jusax.de/git/jusax23/gitea-release.git", diff --git a/package.json b/package.json index 16ce74c..fd38f03 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "auth-header": "^1.0.0", "commander": "^10.0.0", "cors": "^2.8.5", - "dblang": "https://jusax.de/git/attachments/1317588b-b3f3-4b95-bdcc-34292a023298", + "dblang": "https://jusax.de/git/attachments/377d0a32-3eca-4a8f-9c3a-f8a045a9c5b1", "express": "^4.18.2", "juml": "https://jusax.de/git/attachments/208913c5-2851-4b86-a53d-ca99fed168cc", "nman": "https://jusax.de/git/attachments/5333948b-fe6b-45d2-9230-ca388f6a89bc", diff --git a/src/api/acts/roomContent.ts b/src/api/acts/roomContent.ts index 474bd28..d171f23 100644 --- a/src/api/acts/roomContent.ts +++ b/src/api/acts/roomContent.ts @@ -1,4 +1,4 @@ -import { and, eq, insert, remove, select, update } from "dblang"; +import { and, coalesce, eq, insert, max, plus, remove, select, update } from "dblang"; import { checkSelfTag } from "../../server/outbagURL.js"; import { Act, Client, STATE } from "../user.js"; import { db, listCategories, listProducts } from "../../sys/db.js"; @@ -49,7 +49,6 @@ export const addCategory: Act = { server: "string", title: "string-256", color: "string-32", - weight: "number" }, func: async (client: Client, data: any, aws: (code: string, data: any) => void) => { if (!checkSelfTag(data.server)) { @@ -68,11 +67,15 @@ export const addCategory: Act = { listCategories.title, listCategories.weight, listCategories.color - ).add( - roomID, - data.title, - data.weight, - data.color + ).setSelect( + select([ + roomID, + data.title, + plus(coalesce(max(listCategories.weight), 0), 1), + data.color + ], listCategories) + .where(eq(listCategories.roomID, roomID)) + .limit(1) ).query(db); if (req.affectedRows > 0) aws("ok", { catID: req.insertId