api.spaceplanner.app

Spaceplanner API
git clone git://jacobedwards.org/api.spaceplanner.app
Log | Files | Refs

commit 45a6cafb9356db7c62a31ed5c26431c88058a81e
parent 5ea3d3b7daef1c48fb567966928e5c0c73087854
Author: Jacob R. Edwards <jacob@jacobedwards.org>
Date:   Tue, 17 Sep 2024 12:52:18 -0700

Fix backend's ReplaceFloorplanData

Shorten it up and add support for furniture and furniture maps.

Diffstat:
Minternal/backend/floorplan_data.go | 32++++++++++++++++++--------------
1 file changed, 18 insertions(+), 14 deletions(-)

diff --git a/internal/backend/floorplan_data.go b/internal/backend/floorplan_data.go @@ -308,28 +308,32 @@ func (e *Env) ReplaceFloorplanData(tx *sql.Tx, user string, floorplan string, da } defer tx.Rollback() } + createPatch := func(id ObjectID, value any) Patch { + return Patch{ + Op: "new", + Path: id.Path(), + Value: value, + } + } if err := e.DeleteFloorplanData(tx, user, floorplan); err != nil { return FloorplanData{}, err } patches := make([]Patch, 0) - for id, point := range data.Points { - patch := Patch{ - Op: "new", - Path: id.Path(), - Value: point, - } - patches = append(patches, patch) + for id, v := range data.Points { + patches = append(patches, createPatch(id, v)) } - for id, pointmap := range data.Pointmaps { - patch := Patch{ - Op: "new", - Path: id.Path(), - Value: pointmap, - } - patches = append(patches, patch) + for id, v := range data.Pointmaps { + patches = append(patches, createPatch(id, v)) } + for id, v := range data.Furniture { + patches = append(patches, createPatch(id, v)) + } + for id, v := range data.FurnitureMaps { + patches = append(patches, createPatch(id, v)) + } + newdata, err := e.PatchFloorplanData(tx, user, floorplan, patches) if err != nil { return FloorplanData{}, err