@@ -39,10 +39,10 @@ class Floorsense::DesksWebsocket < PlaceOS::Driver
3939 @controllers : Hash (Int32 , ControllerInfo ) = {} of Int32 => ControllerInfo
4040
4141 # Locker key => controller id
42- @lockers : Hash (String , LockerInfo ) = {} of String => LockerInfo
42+ getter locker_controllers : Hash (String , LockerInfo ) = {} of String => LockerInfo
4343
4444 # Desk key => controller id
45- @desks : Hash (String , DeskInfo ) = {} of String => DeskInfo
45+ getter desk_controllers : Hash (String , DeskInfo ) = {} of String => DeskInfo
4646
4747 def on_load
4848 transport.tokenizer = Tokenizer .new(" \r\n " )
@@ -61,6 +61,10 @@ class Floorsense::DesksWebsocket < PlaceOS::Driver
6161 transport.http_uri_override = nil
6262 end
6363
64+ transport.before_request do |request |
65+ logger.debug { " requesting: #{ request.method } #{ request.path } ?#{ request.query } \n #{ request.body } " }
66+ end
67+
6468 schedule.clear
6569 schedule.every(1 .hour) { sync_locker_list }
6670 schedule.in(5 .seconds) { sync_locker_list }
@@ -168,6 +172,7 @@ class Floorsense::DesksWebsocket < PlaceOS::Driver
168172 end
169173
170174 protected def check_success (response ) : Bool
175+ logger.debug { " responed with #{ response.status_code } \n #{ response.body } " }
171176 return true if response.success?
172177 expire_token! if response.status_code == 401
173178 raise " unexpected response #{ response.status_code } \n #{ response.body } "
@@ -224,8 +229,8 @@ class Floorsense::DesksWebsocket < PlaceOS::Driver
224229 logger.warn(exception: error) { " obtaining desk list for controller #{ controller.name } - #{ controller_id } , possibly offline" }
225230 end
226231 end
227- @desks = desks
228- @lockers = lockers
232+ @desk_controllers = desks
233+ @locker_controllers = lockers
229234 end
230235
231236 def controller_list (locker : Bool ? = nil , desks : Bool ? = nil )
@@ -288,7 +293,7 @@ class Floorsense::DesksWebsocket < PlaceOS::Driver
288293 end
289294
290295 def all_lockers
291- return @lockers .values unless @lockers .empty?
296+ return @locker_controllers .values unless @locker_controllers .empty?
292297 sync_locker_list.values
293298 end
294299
@@ -298,13 +303,13 @@ class Floorsense::DesksWebsocket < PlaceOS::Driver
298303 end
299304
300305 def locker (locker_key : String )
301- lock = @lockers [locker_key]
306+ lock = @locker_controllers [locker_key]
302307 response = get(" /restapi/locker-status?cid=#{ lock.controller_id } &bid=#{ lock.bus_id } &lid=#{ lock.locker_id } " , headers: default_headers)
303308 parse response, LockerInfo
304309 end
305310
306311 def locker_info (locker_key : String )
307- @lockers [locker_key]
312+ @locker_controllers [locker_key]
308313 end
309314
310315 enum LedState
@@ -324,7 +329,7 @@ class Floorsense::DesksWebsocket < PlaceOS::Driver
324329 usb_charging : String ? = nil ,
325330 detect : Bool ? = nil
326331 )
327- lock = @lockers [locker_key]
332+ lock = @locker_controllers [locker_key]
328333
329334 response = post(" /restapi/locker-control" , headers: {
330335 " Accept" => " application/json" ,
@@ -363,7 +368,7 @@ class Floorsense::DesksWebsocket < PlaceOS::Driver
363368 restype : String = " adhoc" , # also supports fixed
364369 controller_id : String | Int32 | Int64 | Nil = nil ,
365370 )
366- controller_id ||= @lockers [locker_key].controller_id
371+ controller_id ||= @locker_controllers [locker_key].controller_id
367372
368373 response = post(" /restapi/res-create" , headers: {
369374 " Accept" => " application/json" ,
@@ -427,7 +432,7 @@ class Floorsense::DesksWebsocket < PlaceOS::Driver
427432 user_id : String ? = nil ,
428433 pin : String ? = nil
429434 )
430- lock = @lockers [locker_key]
435+ lock = @locker_controllers [locker_key]
431436
432437 response = post(" /restapi/locker-unlock" , headers: {
433438 " Accept" => " application/json" ,
@@ -752,6 +757,13 @@ class Floorsense::DesksWebsocket < PlaceOS::Driver
752757 parse response, Array (DeskInfo )
753758 end
754759
760+ def desk_info (desk_key : String )
761+ controller_id = @desk_controllers [desk_key].controller_id
762+ response = get(" /restapi/desk-status?cid=#{ controller_id } &key=#{ desk_key } " , headers: default_headers)
763+ desk_info = parse response, DeskInfo
764+ desk_info
765+ end
766+
755767 enum LedColour
756768 Red
757769 Green
@@ -785,7 +797,7 @@ class Floorsense::DesksWebsocket < PlaceOS::Driver
785797 reboot : Bool = false ,
786798 clean : Bool = false
787799 )
788- controller_id = @desks [desk_key].controller_id
800+ controller_id = @desk_controllers [desk_key].controller_id
789801
790802 response = post(" /restapi/desk-control" , headers: {
791803 " Accept" => " application/json" ,
@@ -816,7 +828,7 @@ class Floorsense::DesksWebsocket < PlaceOS::Driver
816828 end
817829
818830 def get_desk_height (desk_key : String ) : Int32 ?
819- nil
831+ desk_info(desk_key).deskheight
820832 end
821833
822834 def set_desk_power (desk_key : String , desk_power : Bool ?)
0 commit comments