From 50c60d288abc306cc9eab6e235e120ff0a952dc0 Mon Sep 17 00:00:00 2001 From: Mia Bennett Date: Wed, 11 Mar 2026 14:35:25 +0930 Subject: [PATCH 1/2] fix(area_management): [PPT-2384] --- drivers/place/area_management.cr | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/place/area_management.cr b/drivers/place/area_management.cr index 359ec23f21..2565b9f021 100644 --- a/drivers/place/area_management.cr +++ b/drivers/place/area_management.cr @@ -289,16 +289,16 @@ class Place::AreaManagement < PlaceOS::Driver protected def update_level_details(level_details, zone, metadata) return unless zone.tags.includes?("level") - if desks = metadata["desks"]? + desks_meta = metadata["desks"]? + if desks_meta && (desk_array = desks_meta.details.as_a?) desk_map = {} of String => String if @desk_id_mappings.empty? - ids = desks.details.as_a.map { |desk| desk["id"].as_s } + ids = desk_array.map { |desk| desk["id"].as_s } else - desk_details = desks.details.as_a - ids = Array(String).new(desk_details.size) + ids = Array(String).new(desk_array.size) - desk_details.each do |desk| + desk_array.each do |desk| desk_id = desk["id"].as_s ids << desk_id @desk_id_mappings.each do |mapping| @@ -309,7 +309,7 @@ class Place::AreaManagement < PlaceOS::Driver end end - ids = desks.details.as_a.map { |desk| desk["id"].as_s } + ids = desk_array.map { |desk| desk["id"].as_s } level_details[zone.id] = { total_desks: ids.size, total_capacity: zone.capacity, @@ -317,6 +317,9 @@ class Place::AreaManagement < PlaceOS::Driver desk_mappings: desk_map, } else + if desks_meta + logger.debug { "desks metadata for zone #{zone.id} has unexpected format: expected Array, got #{desks_meta.details.raw.class}" } + end level_details[zone.id] = { total_desks: zone.count, total_capacity: zone.capacity, From 1d0923b6a2e943ebf18da8ca580f3f0978b0be19 Mon Sep 17 00:00:00 2001 From: Mia Bennett Date: Tue, 17 Mar 2026 12:42:31 +0930 Subject: [PATCH 2/2] fix(area_management): [PPT-2384] change debug log to warning --- drivers/place/area_management.cr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/place/area_management.cr b/drivers/place/area_management.cr index 2565b9f021..30208effdc 100644 --- a/drivers/place/area_management.cr +++ b/drivers/place/area_management.cr @@ -318,7 +318,7 @@ class Place::AreaManagement < PlaceOS::Driver } else if desks_meta - logger.debug { "desks metadata for zone #{zone.id} has unexpected format: expected Array, got #{desks_meta.details.raw.class}" } + logger.warn { "desks metadata for zone #{zone.id} has unexpected format: expected Array, got #{desks_meta.details.raw.class}" } end level_details[zone.id] = { total_desks: zone.count,