www.spaceplanner.app

Web client to the spaceplanner API
git clone git://jacobedwards.org/www.spaceplanner.app
Log | Files | Refs

commit f24faef5fc0ae6f94133b498d929bc9a62d40ba2
parent 1c9c6d5fcf06bb14d685607646074d586822e94e
Author: Jacob R. Edwards <jacob@jacobedwards.org>
Date:   Sun, 13 Oct 2024 18:05:40 -0700

Fix backend updatedObject again

Fields validated with the type parameter were not set in the new
object.

Diffstat:
Mfiles/floorplans/floorplan/backend.js | 8+++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/files/floorplans/floorplan/backend.js b/files/floorplans/floorplan/backend.js @@ -622,7 +622,7 @@ export class FloorplanBackend { for (let k in vd) { let vdk = vd[k] if (params[k] === undefined) { - if (obj[k] !== undefined || vdk.default === undefined) { + if (obj[k] !== undefined || vdk.default == undefined) { continue } params[k] = vdk.default @@ -639,6 +639,7 @@ export class FloorplanBackend { if (typeof params[k] !== vdk.type) { throw new Error(`Invalid value for "${k}" parameter (type was ${typeof params[k]} when expecting ${vdk.type}`) } + obj[k] = params[k] } if (typeof vdk.parse === "function") { obj[k] = vdk.parse(params[k]) @@ -646,14 +647,15 @@ export class FloorplanBackend { if (!vdk.validate(params[k])) { throw new Error(`Invalid value for "${k}" parameter ("${params[k]}")`) } - obj[k] = params[k] + obj[k] = params[k] } else if (typeof vdk.type !== "string") { throw new Error(`"${k}" parameter missing type constraint, or validate or parse function`) } } for (let k in vd) { - if (vd[k].required && obj[k] == null) { + if (vd[k].required && obj[k] === undefined) { + console.warn(params, obj) throw new Error(`Cannot omit required parameter ("${k}")`) } }