fix: support api token meal cook writes

This commit is contained in:
OpenClaw Bot
2026-05-11 23:41:01 +02:00
parent 3e4cc78d3e
commit 044c85563f
+7 -3
View File
@@ -71,6 +71,10 @@ function validateCookUserId(raw) {
return { present: true, value: id, error: null }; return { present: true, value: id, error: null };
} }
function currentUserId(req) {
return req.authUserId ?? req.session?.userId ?? null;
}
function tableColumns(table) { function tableColumns(table) {
return new Set(db.get().prepare(`PRAGMA table_info(${table})`).all().map((row) => row.name)); return new Set(db.get().prepare(`PRAGMA table_info(${table})`).all().map((row) => row.name));
} }
@@ -249,7 +253,7 @@ router.post('/', (req, res) => {
const result = db.get().prepare(` const result = db.get().prepare(`
INSERT INTO meals (date, meal_type, title, notes, recipe_url, recipe_id, created_by) INSERT INTO meals (date, meal_type, title, notes, recipe_url, recipe_id, created_by)
VALUES (?, ?, ?, ?, ?, ?, ?) VALUES (?, ?, ?, ?, ?, ?, ?)
`).run(vDate.value, vType.value, vTitle.value, vNotes.value, vRecipeUrl.value, vRecipeId.value, req.session.userId); `).run(vDate.value, vType.value, vTitle.value, vNotes.value, vRecipeUrl.value, vRecipeId.value, currentUserId(req));
const mealId = result.lastInsertRowid; const mealId = result.lastInsertRowid;
@@ -272,7 +276,7 @@ router.post('/', (req, res) => {
`).get(mealId); `).get(mealId);
if (vCookUserId.present && vCookUserId.value !== null) { if (vCookUserId.present && vCookUserId.value !== null) {
saveCookAssignment(createdMeal, vCookUserId.value, vSourcePlanId.value, req.session.userId); saveCookAssignment(createdMeal, vCookUserId.value, vSourcePlanId.value, currentUserId(req));
} }
return createdMeal; return createdMeal;
@@ -348,7 +352,7 @@ router.put('/:id', (req, res) => {
`).get(id); `).get(id);
if (vCookUserId.present) { if (vCookUserId.present) {
saveCookAssignment(updated, vCookUserId.value, vSourcePlanId.value, req.session.userId); saveCookAssignment(updated, vCookUserId.value, vSourcePlanId.value, currentUserId(req));
} else { } else {
syncCookAssignmentSlot(updated); syncCookAssignmentSlot(updated);
} }